Don't like ads? PRO users don't see any ads ;-)
Guest

Untitled

By: a guest on May 8th, 2012  |  syntax: None  |  size: 291.69 KB  |  hits: 14  |  expires: Never
download  |  raw  |  embed  |  report abuse  |  print
Text below is selected. Please press Ctrl+C to copy to your clipboard. (⌘+C on Mac)
  1. goog.provide('cljs.core');
  2. goog.require('goog.string');
  3. goog.require('goog.string.StringBuffer');
  4. goog.require('goog.object');
  5. goog.require('goog.array');
  6. /**
  7. * Internal - do not use!
  8. */
  9. cljs.core.truth_ = (function truth_(x){
  10. return (x != null && x !== false);
  11. });
  12. /**
  13. * Internal - do not use!
  14. */
  15. cljs.core.type_satisfies_ = (function type_satisfies_(p,x){
  16. var or__3576__auto____1991 = (p[goog.typeOf.call(null,x)]);
  17.  
  18. if(cljs.core.truth_(or__3576__auto____1991))
  19. {return or__3576__auto____1991;
  20. } else
  21. {var or__3576__auto____1992 = (p["_"]);
  22.  
  23. if(cljs.core.truth_(or__3576__auto____1992))
  24. {return or__3576__auto____1992;
  25. } else
  26. {return false;
  27. }
  28. }
  29. });
  30. /**
  31. * When compiled for a command-line target, whatever
  32. * function *main-fn* is set to will be called with the command-line
  33. * argv as arguments
  34. */
  35. cljs.core._STAR_main_cli_fn_STAR_ = null;
  36. /**
  37. * Returns a javascript array, cloned from the passed in array
  38. */
  39. cljs.core.aclone = (function aclone(array_like){
  40. return Array.prototype.slice.call(array_like);
  41. });
  42. /**
  43. * Creates a new javascript array.
  44. * @param {...*} var_args
  45. */
  46. cljs.core.array = (function array(var_args){
  47. return Array.prototype.slice.call(arguments);
  48. });
  49. /**
  50. * Returns the value at the index.
  51. */
  52. cljs.core.aget = (function aget(array,i){
  53. return array[i];
  54. });
  55. /**
  56. * Sets the value at the index.
  57. */
  58. cljs.core.aset = (function aset(array,i,val){
  59. return (array[i] = val);
  60. });
  61. /**
  62. * Returns the length of the Java array. Works on arrays of all types.
  63. */
  64. cljs.core.alength = (function alength(array){
  65. return array.length;
  66. });
  67. cljs.core.ICounted = {};
  68. cljs.core._count = (function _count(coll){
  69. if(cljs.core.truth_((function (){var and__3574__auto____1993 = coll;
  70.  
  71. if(cljs.core.truth_(and__3574__auto____1993))
  72. {return coll.cljs$core$ICounted$_count;
  73. } else
  74. {return and__3574__auto____1993;
  75. }
  76. })()))
  77. {return coll.cljs$core$ICounted$_count(coll);
  78. } else
  79. {return (function (){var or__3576__auto____1994 = (_count[goog.typeOf.call(null,coll)]);
  80.  
  81. if(cljs.core.truth_(or__3576__auto____1994))
  82. {return or__3576__auto____1994;
  83. } else
  84. {return (_count["_"]);
  85. }
  86. })().call(null,coll);
  87. }
  88. });
  89. cljs.core.IEmptyableCollection = {};
  90. cljs.core._empty = (function _empty(coll){
  91. if(cljs.core.truth_((function (){var and__3574__auto____1995 = coll;
  92.  
  93. if(cljs.core.truth_(and__3574__auto____1995))
  94. {return coll.cljs$core$IEmptyableCollection$_empty;
  95. } else
  96. {return and__3574__auto____1995;
  97. }
  98. })()))
  99. {return coll.cljs$core$IEmptyableCollection$_empty(coll);
  100. } else
  101. {return (function (){var or__3576__auto____1996 = (_empty[goog.typeOf.call(null,coll)]);
  102.  
  103. if(cljs.core.truth_(or__3576__auto____1996))
  104. {return or__3576__auto____1996;
  105. } else
  106. {return (_empty["_"]);
  107. }
  108. })().call(null,coll);
  109. }
  110. });
  111. cljs.core.ICollection = {};
  112. cljs.core._conj = (function _conj(coll,o){
  113. if(cljs.core.truth_((function (){var and__3574__auto____1997 = coll;
  114.  
  115. if(cljs.core.truth_(and__3574__auto____1997))
  116. {return coll.cljs$core$ICollection$_conj;
  117. } else
  118. {return and__3574__auto____1997;
  119. }
  120. })()))
  121. {return coll.cljs$core$ICollection$_conj(coll,o);
  122. } else
  123. {return (function (){var or__3576__auto____1998 = (_conj[goog.typeOf.call(null,coll)]);
  124.  
  125. if(cljs.core.truth_(or__3576__auto____1998))
  126. {return or__3576__auto____1998;
  127. } else
  128. {return (_conj["_"]);
  129. }
  130. })().call(null,coll,o);
  131. }
  132. });
  133. cljs.core.IIndexed = {};
  134. cljs.core._nth = (function() {
  135. var _nth = null;
  136. var _nth__2003 = (function (coll,n){
  137. if(cljs.core.truth_((function (){var and__3574__auto____1999 = coll;
  138.  
  139. if(cljs.core.truth_(and__3574__auto____1999))
  140. {return coll.cljs$core$IIndexed$_nth;
  141. } else
  142. {return and__3574__auto____1999;
  143. }
  144. })()))
  145. {return coll.cljs$core$IIndexed$_nth(coll,n);
  146. } else
  147. {return (function (){var or__3576__auto____2000 = (_nth[goog.typeOf.call(null,coll)]);
  148.  
  149. if(cljs.core.truth_(or__3576__auto____2000))
  150. {return or__3576__auto____2000;
  151. } else
  152. {return (_nth["_"]);
  153. }
  154. })().call(null,coll,n);
  155. }
  156. });
  157. var _nth__2004 = (function (coll,n,not_found){
  158. if(cljs.core.truth_((function (){var and__3574__auto____2001 = coll;
  159.  
  160. if(cljs.core.truth_(and__3574__auto____2001))
  161. {return coll.cljs$core$IIndexed$_nth;
  162. } else
  163. {return and__3574__auto____2001;
  164. }
  165. })()))
  166. {return coll.cljs$core$IIndexed$_nth(coll,n,not_found);
  167. } else
  168. {return (function (){var or__3576__auto____2002 = (_nth[goog.typeOf.call(null,coll)]);
  169.  
  170. if(cljs.core.truth_(or__3576__auto____2002))
  171. {return or__3576__auto____2002;
  172. } else
  173. {return (_nth["_"]);
  174. }
  175. })().call(null,coll,n,not_found);
  176. }
  177. });
  178. _nth = function(coll,n,not_found){
  179. switch(arguments.length){
  180. case  2 :
  181. return _nth__2003.call(this,coll,n);
  182. case  3 :
  183. return _nth__2004.call(this,coll,n,not_found);
  184. }
  185. throw('Invalid arity: ' + arguments.length);
  186. };
  187. return _nth;
  188. })()
  189. ;
  190. cljs.core.ISeq = {};
  191. cljs.core._first = (function _first(coll){
  192. if(cljs.core.truth_((function (){var and__3574__auto____2006 = coll;
  193.  
  194. if(cljs.core.truth_(and__3574__auto____2006))
  195. {return coll.cljs$core$ISeq$_first;
  196. } else
  197. {return and__3574__auto____2006;
  198. }
  199. })()))
  200. {return coll.cljs$core$ISeq$_first(coll);
  201. } else
  202. {return (function (){var or__3576__auto____2007 = (_first[goog.typeOf.call(null,coll)]);
  203.  
  204. if(cljs.core.truth_(or__3576__auto____2007))
  205. {return or__3576__auto____2007;
  206. } else
  207. {return (_first["_"]);
  208. }
  209. })().call(null,coll);
  210. }
  211. });
  212. cljs.core._rest = (function _rest(coll){
  213. if(cljs.core.truth_((function (){var and__3574__auto____2008 = coll;
  214.  
  215. if(cljs.core.truth_(and__3574__auto____2008))
  216. {return coll.cljs$core$ISeq$_rest;
  217. } else
  218. {return and__3574__auto____2008;
  219. }
  220. })()))
  221. {return coll.cljs$core$ISeq$_rest(coll);
  222. } else
  223. {return (function (){var or__3576__auto____2009 = (_rest[goog.typeOf.call(null,coll)]);
  224.  
  225. if(cljs.core.truth_(or__3576__auto____2009))
  226. {return or__3576__auto____2009;
  227. } else
  228. {return (_rest["_"]);
  229. }
  230. })().call(null,coll);
  231. }
  232. });
  233. cljs.core.ILookup = {};
  234. cljs.core._lookup = (function() {
  235. var _lookup = null;
  236. var _lookup__2014 = (function (o,k){
  237. if(cljs.core.truth_((function (){var and__3574__auto____2010 = o;
  238.  
  239. if(cljs.core.truth_(and__3574__auto____2010))
  240. {return o.cljs$core$ILookup$_lookup;
  241. } else
  242. {return and__3574__auto____2010;
  243. }
  244. })()))
  245. {return o.cljs$core$ILookup$_lookup(o,k);
  246. } else
  247. {return (function (){var or__3576__auto____2011 = (_lookup[goog.typeOf.call(null,o)]);
  248.  
  249. if(cljs.core.truth_(or__3576__auto____2011))
  250. {return or__3576__auto____2011;
  251. } else
  252. {return (_lookup["_"]);
  253. }
  254. })().call(null,o,k);
  255. }
  256. });
  257. var _lookup__2015 = (function (o,k,not_found){
  258. if(cljs.core.truth_((function (){var and__3574__auto____2012 = o;
  259.  
  260. if(cljs.core.truth_(and__3574__auto____2012))
  261. {return o.cljs$core$ILookup$_lookup;
  262. } else
  263. {return and__3574__auto____2012;
  264. }
  265. })()))
  266. {return o.cljs$core$ILookup$_lookup(o,k,not_found);
  267. } else
  268. {return (function (){var or__3576__auto____2013 = (_lookup[goog.typeOf.call(null,o)]);
  269.  
  270. if(cljs.core.truth_(or__3576__auto____2013))
  271. {return or__3576__auto____2013;
  272. } else
  273. {return (_lookup["_"]);
  274. }
  275. })().call(null,o,k,not_found);
  276. }
  277. });
  278. _lookup = function(o,k,not_found){
  279. switch(arguments.length){
  280. case  2 :
  281. return _lookup__2014.call(this,o,k);
  282. case  3 :
  283. return _lookup__2015.call(this,o,k,not_found);
  284. }
  285. throw('Invalid arity: ' + arguments.length);
  286. };
  287. return _lookup;
  288. })()
  289. ;
  290. cljs.core.IAssociative = {};
  291. cljs.core._contains_key_QMARK_ = (function _contains_key_QMARK_(coll,k){
  292. if(cljs.core.truth_((function (){var and__3574__auto____2017 = coll;
  293.  
  294. if(cljs.core.truth_(and__3574__auto____2017))
  295. {return coll.cljs$core$IAssociative$_contains_key_QMARK_;
  296. } else
  297. {return and__3574__auto____2017;
  298. }
  299. })()))
  300. {return coll.cljs$core$IAssociative$_contains_key_QMARK_(coll,k);
  301. } else
  302. {return (function (){var or__3576__auto____2018 = (_contains_key_QMARK_[goog.typeOf.call(null,coll)]);
  303.  
  304. if(cljs.core.truth_(or__3576__auto____2018))
  305. {return or__3576__auto____2018;
  306. } else
  307. {return (_contains_key_QMARK_["_"]);
  308. }
  309. })().call(null,coll,k);
  310. }
  311. });
  312. cljs.core._assoc = (function _assoc(coll,k,v){
  313. if(cljs.core.truth_((function (){var and__3574__auto____2019 = coll;
  314.  
  315. if(cljs.core.truth_(and__3574__auto____2019))
  316. {return coll.cljs$core$IAssociative$_assoc;
  317. } else
  318. {return and__3574__auto____2019;
  319. }
  320. })()))
  321. {return coll.cljs$core$IAssociative$_assoc(coll,k,v);
  322. } else
  323. {return (function (){var or__3576__auto____2020 = (_assoc[goog.typeOf.call(null,coll)]);
  324.  
  325. if(cljs.core.truth_(or__3576__auto____2020))
  326. {return or__3576__auto____2020;
  327. } else
  328. {return (_assoc["_"]);
  329. }
  330. })().call(null,coll,k,v);
  331. }
  332. });
  333. cljs.core.IMap = {};
  334. cljs.core._dissoc = (function _dissoc(coll,k){
  335. if(cljs.core.truth_((function (){var and__3574__auto____2021 = coll;
  336.  
  337. if(cljs.core.truth_(and__3574__auto____2021))
  338. {return coll.cljs$core$IMap$_dissoc;
  339. } else
  340. {return and__3574__auto____2021;
  341. }
  342. })()))
  343. {return coll.cljs$core$IMap$_dissoc(coll,k);
  344. } else
  345. {return (function (){var or__3576__auto____2022 = (_dissoc[goog.typeOf.call(null,coll)]);
  346.  
  347. if(cljs.core.truth_(or__3576__auto____2022))
  348. {return or__3576__auto____2022;
  349. } else
  350. {return (_dissoc["_"]);
  351. }
  352. })().call(null,coll,k);
  353. }
  354. });
  355. cljs.core.ISet = {};
  356. cljs.core._disjoin = (function _disjoin(coll,v){
  357. if(cljs.core.truth_((function (){var and__3574__auto____2023 = coll;
  358.  
  359. if(cljs.core.truth_(and__3574__auto____2023))
  360. {return coll.cljs$core$ISet$_disjoin;
  361. } else
  362. {return and__3574__auto____2023;
  363. }
  364. })()))
  365. {return coll.cljs$core$ISet$_disjoin(coll,v);
  366. } else
  367. {return (function (){var or__3576__auto____2024 = (_disjoin[goog.typeOf.call(null,coll)]);
  368.  
  369. if(cljs.core.truth_(or__3576__auto____2024))
  370. {return or__3576__auto____2024;
  371. } else
  372. {return (_disjoin["_"]);
  373. }
  374. })().call(null,coll,v);
  375. }
  376. });
  377. cljs.core.IStack = {};
  378. cljs.core._peek = (function _peek(coll){
  379. if(cljs.core.truth_((function (){var and__3574__auto____2025 = coll;
  380.  
  381. if(cljs.core.truth_(and__3574__auto____2025))
  382. {return coll.cljs$core$IStack$_peek;
  383. } else
  384. {return and__3574__auto____2025;
  385. }
  386. })()))
  387. {return coll.cljs$core$IStack$_peek(coll);
  388. } else
  389. {return (function (){var or__3576__auto____2026 = (_peek[goog.typeOf.call(null,coll)]);
  390.  
  391. if(cljs.core.truth_(or__3576__auto____2026))
  392. {return or__3576__auto____2026;
  393. } else
  394. {return (_peek["_"]);
  395. }
  396. })().call(null,coll);
  397. }
  398. });
  399. cljs.core._pop = (function _pop(coll){
  400. if(cljs.core.truth_((function (){var and__3574__auto____2027 = coll;
  401.  
  402. if(cljs.core.truth_(and__3574__auto____2027))
  403. {return coll.cljs$core$IStack$_pop;
  404. } else
  405. {return and__3574__auto____2027;
  406. }
  407. })()))
  408. {return coll.cljs$core$IStack$_pop(coll);
  409. } else
  410. {return (function (){var or__3576__auto____2028 = (_pop[goog.typeOf.call(null,coll)]);
  411.  
  412. if(cljs.core.truth_(or__3576__auto____2028))
  413. {return or__3576__auto____2028;
  414. } else
  415. {return (_pop["_"]);
  416. }
  417. })().call(null,coll);
  418. }
  419. });
  420. cljs.core.IVector = {};
  421. cljs.core._assoc_n = (function _assoc_n(coll,n,val){
  422. if(cljs.core.truth_((function (){var and__3574__auto____2029 = coll;
  423.  
  424. if(cljs.core.truth_(and__3574__auto____2029))
  425. {return coll.cljs$core$IVector$_assoc_n;
  426. } else
  427. {return and__3574__auto____2029;
  428. }
  429. })()))
  430. {return coll.cljs$core$IVector$_assoc_n(coll,n,val);
  431. } else
  432. {return (function (){var or__3576__auto____2030 = (_assoc_n[goog.typeOf.call(null,coll)]);
  433.  
  434. if(cljs.core.truth_(or__3576__auto____2030))
  435. {return or__3576__auto____2030;
  436. } else
  437. {return (_assoc_n["_"]);
  438. }
  439. })().call(null,coll,n,val);
  440. }
  441. });
  442. cljs.core.IDeref = {};
  443. cljs.core._deref = (function _deref(o){
  444. if(cljs.core.truth_((function (){var and__3574__auto____2031 = o;
  445.  
  446. if(cljs.core.truth_(and__3574__auto____2031))
  447. {return o.cljs$core$IDeref$_deref;
  448. } else
  449. {return and__3574__auto____2031;
  450. }
  451. })()))
  452. {return o.cljs$core$IDeref$_deref(o);
  453. } else
  454. {return (function (){var or__3576__auto____2032 = (_deref[goog.typeOf.call(null,o)]);
  455.  
  456. if(cljs.core.truth_(or__3576__auto____2032))
  457. {return or__3576__auto____2032;
  458. } else
  459. {return (_deref["_"]);
  460. }
  461. })().call(null,o);
  462. }
  463. });
  464. cljs.core.IDerefWithTimeout = {};
  465. cljs.core._deref_with_timeout = (function _deref_with_timeout(o,msec,timeout_val){
  466. if(cljs.core.truth_((function (){var and__3574__auto____2033 = o;
  467.  
  468. if(cljs.core.truth_(and__3574__auto____2033))
  469. {return o.cljs$core$IDerefWithTimeout$_deref_with_timeout;
  470. } else
  471. {return and__3574__auto____2033;
  472. }
  473. })()))
  474. {return o.cljs$core$IDerefWithTimeout$_deref_with_timeout(o,msec,timeout_val);
  475. } else
  476. {return (function (){var or__3576__auto____2034 = (_deref_with_timeout[goog.typeOf.call(null,o)]);
  477.  
  478. if(cljs.core.truth_(or__3576__auto____2034))
  479. {return or__3576__auto____2034;
  480. } else
  481. {return (_deref_with_timeout["_"]);
  482. }
  483. })().call(null,o,msec,timeout_val);
  484. }
  485. });
  486. cljs.core.IMeta = {};
  487. cljs.core._meta = (function _meta(o){
  488. if(cljs.core.truth_((function (){var and__3574__auto____2035 = o;
  489.  
  490. if(cljs.core.truth_(and__3574__auto____2035))
  491. {return o.cljs$core$IMeta$_meta;
  492. } else
  493. {return and__3574__auto____2035;
  494. }
  495. })()))
  496. {return o.cljs$core$IMeta$_meta(o);
  497. } else
  498. {return (function (){var or__3576__auto____2036 = (_meta[goog.typeOf.call(null,o)]);
  499.  
  500. if(cljs.core.truth_(or__3576__auto____2036))
  501. {return or__3576__auto____2036;
  502. } else
  503. {return (_meta["_"]);
  504. }
  505. })().call(null,o);
  506. }
  507. });
  508. cljs.core.IWithMeta = {};
  509. cljs.core._with_meta = (function _with_meta(o,meta){
  510. if(cljs.core.truth_((function (){var and__3574__auto____2037 = o;
  511.  
  512. if(cljs.core.truth_(and__3574__auto____2037))
  513. {return o.cljs$core$IWithMeta$_with_meta;
  514. } else
  515. {return and__3574__auto____2037;
  516. }
  517. })()))
  518. {return o.cljs$core$IWithMeta$_with_meta(o,meta);
  519. } else
  520. {return (function (){var or__3576__auto____2038 = (_with_meta[goog.typeOf.call(null,o)]);
  521.  
  522. if(cljs.core.truth_(or__3576__auto____2038))
  523. {return or__3576__auto____2038;
  524. } else
  525. {return (_with_meta["_"]);
  526. }
  527. })().call(null,o,meta);
  528. }
  529. });
  530. cljs.core.IReduce = {};
  531. cljs.core._reduce = (function() {
  532. var _reduce = null;
  533. var _reduce__2043 = (function (coll,f){
  534. if(cljs.core.truth_((function (){var and__3574__auto____2039 = coll;
  535.  
  536. if(cljs.core.truth_(and__3574__auto____2039))
  537. {return coll.cljs$core$IReduce$_reduce;
  538. } else
  539. {return and__3574__auto____2039;
  540. }
  541. })()))
  542. {return coll.cljs$core$IReduce$_reduce(coll,f);
  543. } else
  544. {return (function (){var or__3576__auto____2040 = (_reduce[goog.typeOf.call(null,coll)]);
  545.  
  546. if(cljs.core.truth_(or__3576__auto____2040))
  547. {return or__3576__auto____2040;
  548. } else
  549. {return (_reduce["_"]);
  550. }
  551. })().call(null,coll,f);
  552. }
  553. });
  554. var _reduce__2044 = (function (coll,f,start){
  555. if(cljs.core.truth_((function (){var and__3574__auto____2041 = coll;
  556.  
  557. if(cljs.core.truth_(and__3574__auto____2041))
  558. {return coll.cljs$core$IReduce$_reduce;
  559. } else
  560. {return and__3574__auto____2041;
  561. }
  562. })()))
  563. {return coll.cljs$core$IReduce$_reduce(coll,f,start);
  564. } else
  565. {return (function (){var or__3576__auto____2042 = (_reduce[goog.typeOf.call(null,coll)]);
  566.  
  567. if(cljs.core.truth_(or__3576__auto____2042))
  568. {return or__3576__auto____2042;
  569. } else
  570. {return (_reduce["_"]);
  571. }
  572. })().call(null,coll,f,start);
  573. }
  574. });
  575. _reduce = function(coll,f,start){
  576. switch(arguments.length){
  577. case  2 :
  578. return _reduce__2043.call(this,coll,f);
  579. case  3 :
  580. return _reduce__2044.call(this,coll,f,start);
  581. }
  582. throw('Invalid arity: ' + arguments.length);
  583. };
  584. return _reduce;
  585. })()
  586. ;
  587. cljs.core.IEquiv = {};
  588. cljs.core._equiv = (function _equiv(o,other){
  589. if(cljs.core.truth_((function (){var and__3574__auto____2046 = o;
  590.  
  591. if(cljs.core.truth_(and__3574__auto____2046))
  592. {return o.cljs$core$IEquiv$_equiv;
  593. } else
  594. {return and__3574__auto____2046;
  595. }
  596. })()))
  597. {return o.cljs$core$IEquiv$_equiv(o,other);
  598. } else
  599. {return (function (){var or__3576__auto____2047 = (_equiv[goog.typeOf.call(null,o)]);
  600.  
  601. if(cljs.core.truth_(or__3576__auto____2047))
  602. {return or__3576__auto____2047;
  603. } else
  604. {return (_equiv["_"]);
  605. }
  606. })().call(null,o,other);
  607. }
  608. });
  609. cljs.core.IHash = {};
  610. cljs.core._hash = (function _hash(o){
  611. if(cljs.core.truth_((function (){var and__3574__auto____2048 = o;
  612.  
  613. if(cljs.core.truth_(and__3574__auto____2048))
  614. {return o.cljs$core$IHash$_hash;
  615. } else
  616. {return and__3574__auto____2048;
  617. }
  618. })()))
  619. {return o.cljs$core$IHash$_hash(o);
  620. } else
  621. {return (function (){var or__3576__auto____2049 = (_hash[goog.typeOf.call(null,o)]);
  622.  
  623. if(cljs.core.truth_(or__3576__auto____2049))
  624. {return or__3576__auto____2049;
  625. } else
  626. {return (_hash["_"]);
  627. }
  628. })().call(null,o);
  629. }
  630. });
  631. cljs.core.ISeqable = {};
  632. cljs.core._seq = (function _seq(o){
  633. if(cljs.core.truth_((function (){var and__3574__auto____2050 = o;
  634.  
  635. if(cljs.core.truth_(and__3574__auto____2050))
  636. {return o.cljs$core$ISeqable$_seq;
  637. } else
  638. {return and__3574__auto____2050;
  639. }
  640. })()))
  641. {return o.cljs$core$ISeqable$_seq(o);
  642. } else
  643. {return (function (){var or__3576__auto____2051 = (_seq[goog.typeOf.call(null,o)]);
  644.  
  645. if(cljs.core.truth_(or__3576__auto____2051))
  646. {return or__3576__auto____2051;
  647. } else
  648. {return (_seq["_"]);
  649. }
  650. })().call(null,o);
  651. core.js:650Uncaught TypeError: Cannot call method 'call' of undefined
  652. }
  653. });
  654. cljs.core.ISequential = {};
  655. cljs.core.IPrintable = {};
  656. cljs.core._pr_seq = (function _pr_seq(o,opts){
  657. if(cljs.core.truth_((function (){var and__3574__auto____2052 = o;
  658.  
  659. if(cljs.core.truth_(and__3574__auto____2052))
  660. {return o.cljs$core$IPrintable$_pr_seq;
  661. } else
  662. {return and__3574__auto____2052;
  663. }
  664. })()))
  665. {return o.cljs$core$IPrintable$_pr_seq(o,opts);
  666. } else
  667. {return (function (){var or__3576__auto____2053 = (_pr_seq[goog.typeOf.call(null,o)]);
  668.  
  669. if(cljs.core.truth_(or__3576__auto____2053))
  670. {return or__3576__auto____2053;
  671. } else
  672. {return (_pr_seq["_"]);
  673. }
  674. })().call(null,o,opts);
  675. }
  676. });
  677. cljs.core.IPending = {};
  678. cljs.core._realized_QMARK_ = (function _realized_QMARK_(d){
  679. if(cljs.core.truth_((function (){var and__3574__auto____2054 = d;
  680.  
  681. if(cljs.core.truth_(and__3574__auto____2054))
  682. {return d.cljs$core$IPending$_realized_QMARK_;
  683. } else
  684. {return and__3574__auto____2054;
  685. }
  686. })()))
  687. {return d.cljs$core$IPending$_realized_QMARK_(d);
  688. } else
  689. {return (function (){var or__3576__auto____2055 = (_realized_QMARK_[goog.typeOf.call(null,d)]);
  690.  
  691. if(cljs.core.truth_(or__3576__auto____2055))
  692. {return or__3576__auto____2055;
  693. } else
  694. {return (_realized_QMARK_["_"]);
  695. }
  696. })().call(null,d);
  697. }
  698. });
  699. cljs.core.identical_QMARK_ = (function identical_QMARK_(x,y){
  700. return (x === y);
  701. });
  702. cljs.core._EQ_ = (function _EQ_(x,y){
  703. return cljs.core._equiv.call(null,x,y);
  704. });
  705. cljs.core.nil_QMARK_ = (function nil_QMARK_(x){
  706. return cljs.core.identical_QMARK_.call(null,x,null);
  707. });
  708. (cljs.core.ISet["null"] = true);
  709. (cljs.core._disjoin["null"] = (function (_,v){
  710. return null;
  711. }));
  712. (cljs.core.IEquiv["null"] = true);
  713. (cljs.core._equiv["null"] = (function (_,o){
  714. return cljs.core.nil_QMARK_.call(null,o);
  715. }));
  716. (cljs.core.ICollection["null"] = true);
  717. (cljs.core._conj["null"] = (function (_,o){
  718. return cljs.core.list.call(null,o);
  719. }));
  720. (cljs.core.ISeq["null"] = true);
  721. (cljs.core._first["null"] = (function (_){
  722. return null;
  723. }));
  724. (cljs.core._rest["null"] = (function (_){
  725. return cljs.core.list.call(null);
  726. }));
  727. (cljs.core.IStack["null"] = true);
  728. (cljs.core._peek["null"] = (function (_){
  729. return null;
  730. }));
  731. (cljs.core._pop["null"] = (function (_){
  732. return null;
  733. }));
  734. (cljs.core.IWithMeta["null"] = true);
  735. (cljs.core._with_meta["null"] = (function (_,meta){
  736. return null;
  737. }));
  738. (cljs.core.IMap["null"] = true);
  739. (cljs.core._dissoc["null"] = (function (_,k){
  740. return null;
  741. }));
  742. (cljs.core.IEmptyableCollection["null"] = true);
  743. (cljs.core._empty["null"] = (function (_){
  744. return null;
  745. }));
  746. (cljs.core.IIndexed["null"] = true);
  747. (cljs.core._nth["null"] = (function() {
  748. var G__2056 = null;
  749. var G__2056__2057 = (function (_,n){
  750. return null;
  751. });
  752. var G__2056__2058 = (function (_,n,not_found){
  753. return not_found;
  754. });
  755. G__2056 = function(_,n,not_found){
  756. switch(arguments.length){
  757. case  2 :
  758. return G__2056__2057.call(this,_,n);
  759. case  3 :
  760. return G__2056__2058.call(this,_,n,not_found);
  761. }
  762. throw('Invalid arity: ' + arguments.length);
  763. };
  764. return G__2056;
  765. })()
  766. );
  767. (cljs.core.IMeta["null"] = true);
  768. (cljs.core._meta["null"] = (function (_){
  769. return null;
  770. }));
  771. (cljs.core.IReduce["null"] = true);
  772. (cljs.core._reduce["null"] = (function() {
  773. var G__2060 = null;
  774. var G__2060__2061 = (function (_,f){
  775. return f.call(null);
  776. });
  777. var G__2060__2062 = (function (_,f,start){
  778. return start;
  779. });
  780. G__2060 = function(_,f,start){
  781. switch(arguments.length){
  782. case  2 :
  783. return G__2060__2061.call(this,_,f);
  784. case  3 :
  785. return G__2060__2062.call(this,_,f,start);
  786. }
  787. throw('Invalid arity: ' + arguments.length);
  788. };
  789. return G__2060;
  790. })()
  791. );
  792. (cljs.core.IHash["null"] = true);
  793. (cljs.core._hash["null"] = (function (o){
  794. return 0;
  795. }));
  796. (cljs.core.ICounted["null"] = true);
  797. (cljs.core._count["null"] = (function (_){
  798. return 0;
  799. }));
  800. (cljs.core.IAssociative["null"] = true);
  801. (cljs.core._assoc["null"] = (function (_,k,v){
  802. return cljs.core.hash_map.call(null,k,v);
  803. }));
  804. (cljs.core.ILookup["null"] = true);
  805. (cljs.core._lookup["null"] = (function() {
  806. var G__2064 = null;
  807. var G__2064__2065 = (function (o,k){
  808. return null;
  809. });
  810. var G__2064__2066 = (function (o,k,not_found){
  811. return not_found;
  812. });
  813. G__2064 = function(o,k,not_found){
  814. switch(arguments.length){
  815. case  2 :
  816. return G__2064__2065.call(this,o,k);
  817. case  3 :
  818. return G__2064__2066.call(this,o,k,not_found);
  819. }
  820. throw('Invalid arity: ' + arguments.length);
  821. };
  822. return G__2064;
  823. })()
  824. );
  825. goog.global['Date'].prototype.cljs$core$IEquiv$ = true;
  826. goog.global['Date'].prototype.cljs$core$IEquiv$_equiv = (function (o,other){
  827. return cljs.core.identical_QMARK_.call(null,o.toString,other.toString);
  828. });
  829. (cljs.core.IHash["number"] = true);
  830. (cljs.core._hash["number"] = (function (o){
  831. return o;
  832. }));
  833. (cljs.core.IEquiv["number"] = true);
  834. (cljs.core._equiv["number"] = (function (x,o){
  835. return cljs.core.identical_QMARK_.call(null,x,o);
  836. }));
  837. (cljs.core.IHash["function"] = true);
  838. (cljs.core._hash["function"] = (function (o){
  839. return goog.getUid.call(null,o);
  840. }));
  841. /**
  842. * Returns a number one greater than num.
  843. */
  844. cljs.core.inc = (function inc(x){
  845. return (x + 1);
  846. });
  847. cljs.core.lt_ = (function lt_(x,y){
  848. return (x < y);
  849. });
  850. /**
  851. * Accepts any collection which satisfies the ICount and IIndexed protocols and
  852. * reduces them without incurring seq initialization
  853. */
  854. cljs.core.ci_reduce = (function() {
  855. var ci_reduce = null;
  856. var ci_reduce__2074 = (function (cicoll,f){
  857. if(cljs.core.truth_(cljs.core._EQ_.call(null,0,cljs.core._count.call(null,cicoll))))
  858. {return f.call(null);
  859. } else
  860. {var val__2068 = cljs.core._nth.call(null,cicoll,0);
  861. var n__2069 = 1;
  862.  
  863. var G__2078,G__2079;G__2078=G__2079=new Object();
  864. while(G__2078===G__2079){
  865. G__2078=(function(continue_val){
  866. if(cljs.core.truth_(cljs.core.lt_.call(null,n__2069,cljs.core._count.call(null,cicoll))))
  867. {{
  868. var G__2080 = f.call(null,val__2068,cljs.core._nth.call(null,cicoll,n__2069));
  869. var G__2081 = cljs.core.inc.call(null,n__2069);
  870. val__2068 = G__2080;
  871. n__2069 = G__2081;
  872. return continue_val;
  873. }
  874. } else
  875. {return val__2068;
  876. }
  877. })(G__2079);}
  878. return G__2078;
  879. }
  880. });
  881. var ci_reduce__2075 = (function (cicoll,f,val){
  882. var val__2070 = val;
  883. var n__2071 = 0;
  884.  
  885. var G__2082,G__2083;G__2082=G__2083=new Object();
  886. while(G__2082===G__2083){
  887. G__2082=(function(continue_val){
  888. if(cljs.core.truth_(cljs.core.lt_.call(null,n__2071,cljs.core._count.call(null,cicoll))))
  889. {{
  890. var G__2084 = f.call(null,val__2070,cljs.core._nth.call(null,cicoll,n__2071));
  891. var G__2085 = cljs.core.inc.call(null,n__2071);
  892. val__2070 = G__2084;
  893. n__2071 = G__2085;
  894. return continue_val;
  895. }
  896. } else
  897. {return val__2070;
  898. }
  899. })(G__2083);}
  900. return G__2082;
  901. });
  902. var ci_reduce__2076 = (function (cicoll,f,val,idx){
  903. var val__2072 = val;
  904. var n__2073 = idx;
  905.  
  906. var G__2086,G__2087;G__2086=G__2087=new Object();
  907. while(G__2086===G__2087){
  908. G__2086=(function(continue_val){
  909. if(cljs.core.truth_(cljs.core.lt_.call(null,n__2073,cljs.core._count.call(null,cicoll))))
  910. {{
  911. var G__2088 = f.call(null,val__2072,cljs.core._nth.call(null,cicoll,n__2073));
  912. var G__2089 = cljs.core.inc.call(null,n__2073);
  913. val__2072 = G__2088;
  914. n__2073 = G__2089;
  915. return continue_val;
  916. }
  917. } else
  918. {return val__2072;
  919. }
  920. })(G__2087);}
  921. return G__2086;
  922. });
  923. ci_reduce = function(cicoll,f,val,idx){
  924. switch(arguments.length){
  925. case  2 :
  926. return ci_reduce__2074.call(this,cicoll,f);
  927. case  3 :
  928. return ci_reduce__2075.call(this,cicoll,f,val);
  929. case  4 :
  930. return ci_reduce__2076.call(this,cicoll,f,val,idx);
  931. }
  932. throw('Invalid arity: ' + arguments.length);
  933. };
  934. return ci_reduce;
  935. })()
  936. ;
  937.  
  938. /**
  939. * @constructor
  940. */
  941. cljs.core.IndexedSeq = (function (a,i){
  942. this.a = a;
  943. this.i = i;
  944. })
  945. cljs.core.IndexedSeq.prototype.cljs$core$IReduce$ = true;
  946. cljs.core.IndexedSeq.prototype.cljs$core$IReduce$_reduce = (function() {
  947. var G__2096 = null;
  948. var G__2096__2097 = (function (_,f){
  949. var this__2090 = this;
  950. return cljs.core.ci_reduce.call(null,this__2090.a,f,(this__2090.a[this__2090.i]),cljs.core.inc.call(null,this__2090.i));
  951. });
  952. var G__2096__2098 = (function (_,f,start){
  953. var this__2091 = this;
  954. return cljs.core.ci_reduce.call(null,this__2091.a,f,start,this__2091.i);
  955. });
  956. G__2096 = function(_,f,start){
  957. switch(arguments.length){
  958. case  2 :
  959. return G__2096__2097.call(this,_,f);
  960. case  3 :
  961. return G__2096__2098.call(this,_,f,start);
  962. }
  963. throw('Invalid arity: ' + arguments.length);
  964. };
  965. return G__2096;
  966. })()
  967. ;
  968. cljs.core.IndexedSeq.prototype.cljs$core$IEquiv$ = true;
  969. cljs.core.IndexedSeq.prototype.cljs$core$IEquiv$_equiv = (function (coll,other){
  970. var this__2092 = this;
  971. return cljs.core.equiv_sequential.call(null,coll,other);
  972. });
  973. cljs.core.IndexedSeq.prototype.cljs$core$ISequential$ = true;
  974. cljs.core.IndexedSeq.prototype.cljs$core$ISeq$ = true;
  975. cljs.core.IndexedSeq.prototype.cljs$core$ISeq$_first = (function (_){
  976. var this__2093 = this;
  977. return (this__2093.a[this__2093.i]);
  978. });
  979. cljs.core.IndexedSeq.prototype.cljs$core$ISeq$_rest = (function (_){
  980. var this__2094 = this;
  981. if(cljs.core.truth_(cljs.core.lt_.call(null,cljs.core.inc.call(null,this__2094.i),cljs.core._count.call(null,this__2094.a))))
  982. {return (new cljs.core.IndexedSeq(this__2094.a,cljs.core.inc.call(null,this__2094.i)));
  983. } else
  984. {return cljs.core.list.call(null);
  985. }
  986. });
  987. cljs.core.IndexedSeq.prototype.cljs$core$ISeqable$ = true;
  988. cljs.core.IndexedSeq.prototype.cljs$core$ISeqable$_seq = (function (this$){
  989. var this__2095 = this;
  990. return this$;
  991. });
  992. cljs.core.prim_seq = (function prim_seq(prim,i){
  993. if(cljs.core.truth_(cljs.core._EQ_.call(null,0,cljs.core._count.call(null,prim))))
  994. {return null;
  995. } else
  996. {return (new cljs.core.IndexedSeq(prim,i));
  997. }
  998. });
  999. cljs.core.array_seq = (function array_seq(array,i){
  1000. return cljs.core.prim_seq.call(null,array,i);
  1001. });
  1002. (cljs.core.IReduce["array"] = true);
  1003. (cljs.core._reduce["array"] = (function() {
  1004. var G__2100 = null;
  1005. var G__2100__2101 = (function (array,f){
  1006. return cljs.core.ci_reduce.call(null,array,f);
  1007. });
  1008. var G__2100__2102 = (function (array,f,start){
  1009. return cljs.core.ci_reduce.call(null,array,f,start);
  1010. });
  1011. G__2100 = function(array,f,start){
  1012. switch(arguments.length){
  1013. case  2 :
  1014. return G__2100__2101.call(this,array,f);
  1015. case  3 :
  1016. return G__2100__2102.call(this,array,f,start);
  1017. }
  1018. throw('Invalid arity: ' + arguments.length);
  1019. };
  1020. return G__2100;
  1021. })()
  1022. );
  1023. (cljs.core.ILookup["array"] = true);
  1024. (cljs.core._lookup["array"] = (function() {
  1025. var G__2104 = null;
  1026. var G__2104__2105 = (function (array,k){
  1027. return (array[k]);
  1028. });
  1029. var G__2104__2106 = (function (array,k,not_found){
  1030. return cljs.core._nth.call(null,array,k,not_found);
  1031. });
  1032. G__2104 = function(array,k,not_found){
  1033. switch(arguments.length){
  1034. case  2 :
  1035. return G__2104__2105.call(this,array,k);
  1036. case  3 :
  1037. return G__2104__2106.call(this,array,k,not_found);
  1038. }
  1039. throw('Invalid arity: ' + arguments.length);
  1040. };
  1041. return G__2104;
  1042. })()
  1043. );
  1044. (cljs.core.IIndexed["array"] = true);
  1045. (cljs.core._nth["array"] = (function() {
  1046. var G__2108 = null;
  1047. var G__2108__2109 = (function (array,n){
  1048. if(cljs.core.truth_(cljs.core.lt_.call(null,n,array.length)))
  1049. {return (array[n]);
  1050. } else
  1051. {return null;
  1052. }
  1053. });
  1054. var G__2108__2110 = (function (array,n,not_found){
  1055. if(cljs.core.truth_(cljs.core.lt_.call(null,n,array.length)))
  1056. {return (array[n]);
  1057. } else
  1058. {return not_found;
  1059. }
  1060. });
  1061. G__2108 = function(array,n,not_found){
  1062. switch(arguments.length){
  1063. case  2 :
  1064. return G__2108__2109.call(this,array,n);
  1065. case  3 :
  1066. return G__2108__2110.call(this,array,n,not_found);
  1067. }
  1068. throw('Invalid arity: ' + arguments.length);
  1069. };
  1070. return G__2108;
  1071. })()
  1072. );
  1073. (cljs.core.ICounted["array"] = true);
  1074. (cljs.core._count["array"] = (function (a){
  1075. return a.length;
  1076. }));
  1077. (cljs.core.ISeqable["array"] = true);
  1078. (cljs.core._seq["array"] = (function (array){
  1079. return cljs.core.array_seq.call(null,array,0);
  1080. }));
  1081. /**
  1082. * Returns a seq on the collection. If the collection is
  1083. * empty, returns nil.  (seq nil) returns nil. seq also works on
  1084. * Strings.
  1085. */
  1086. cljs.core.seq = (function seq(coll){
  1087. if(cljs.core.truth_(coll))
  1088. {return cljs.core._seq.call(null,coll);
  1089. } else
  1090. {return null;
  1091. }
  1092. });
  1093. /**
  1094. * Returns the first item in the collection. Calls seq on its
  1095. * argument. If coll is nil, returns nil.
  1096. */
  1097. cljs.core.first = (function first(coll){
  1098. var temp__3726__auto____2112 = cljs.core.seq.call(null,coll);
  1099.  
  1100. if(cljs.core.truth_(temp__3726__auto____2112))
  1101. {var s__2113 = temp__3726__auto____2112;
  1102.  
  1103. return cljs.core._first.call(null,s__2113);
  1104. } else
  1105. {return null;
  1106. }
  1107. });
  1108. /**
  1109. * Returns a possibly empty seq of the items after the first. Calls seq on its
  1110. * argument.
  1111. */
  1112. cljs.core.rest = (function rest(coll){
  1113. return cljs.core._rest.call(null,cljs.core.seq.call(null,coll));
  1114. });
  1115. /**
  1116. * Returns a seq of the items after the first. Calls seq on its
  1117. * argument.  If there are no more items, returns nil
  1118. */
  1119. cljs.core.next = (function next(coll){
  1120. if(cljs.core.truth_(coll))
  1121. {return cljs.core.seq.call(null,cljs.core.rest.call(null,coll));
  1122. } else
  1123. {return null;
  1124. }
  1125. });
  1126. /**
  1127. * Same as (first (next x))
  1128. */
  1129. cljs.core.second = (function second(coll){
  1130. return cljs.core.first.call(null,cljs.core.next.call(null,coll));
  1131. });
  1132. /**
  1133. * Same as (first (first x))
  1134. */
  1135. cljs.core.ffirst = (function ffirst(coll){
  1136. return cljs.core.first.call(null,cljs.core.first.call(null,coll));
  1137. });
  1138. /**
  1139. * Same as (next (first x))
  1140. */
  1141. cljs.core.nfirst = (function nfirst(coll){
  1142. return cljs.core.next.call(null,cljs.core.first.call(null,coll));
  1143. });
  1144. /**
  1145. * Same as (first (next x))
  1146. */
  1147. cljs.core.fnext = (function fnext(coll){
  1148. return cljs.core.first.call(null,cljs.core.next.call(null,coll));
  1149. });
  1150. /**
  1151. * Same as (next (next x))
  1152. */
  1153. cljs.core.nnext = (function nnext(coll){
  1154. return cljs.core.next.call(null,cljs.core.next.call(null,coll));
  1155. });
  1156. /**
  1157. * Return the last item in coll, in linear time
  1158. */
  1159. cljs.core.last = (function last(s){
  1160. var G__2114,G__2115;G__2114=G__2115=new Object();
  1161. while(G__2114===G__2115){
  1162. G__2114=(function(continue_val){
  1163. if(cljs.core.truth_(cljs.core.next.call(null,s)))
  1164. {{
  1165. var G__2116 = cljs.core.next.call(null,s);
  1166. s = G__2116;
  1167. return continue_val;
  1168. }
  1169. } else
  1170. {return cljs.core.first.call(null,s);
  1171. }
  1172. })(G__2115);}
  1173. return G__2114;
  1174. });
  1175. (cljs.core.ICounted["_"] = true);
  1176. (cljs.core._count["_"] = (function (x){
  1177. var s__2117 = cljs.core.seq.call(null,x);
  1178. var n__2118 = 0;
  1179.  
  1180. var G__2119,G__2120;G__2119=G__2120=new Object();
  1181. while(G__2119===G__2120){
  1182. G__2119=(function(continue_val){
  1183. if(cljs.core.truth_(s__2117))
  1184. {{
  1185. var G__2121 = cljs.core.next.call(null,s__2117);
  1186. var G__2122 = cljs.core.inc.call(null,n__2118);
  1187. s__2117 = G__2121;
  1188. n__2118 = G__2122;
  1189. return continue_val;
  1190. }
  1191. } else
  1192. {return n__2118;
  1193. }
  1194. })(G__2120);}
  1195. return G__2119;
  1196. }));
  1197. (cljs.core.IEquiv["_"] = true);
  1198. (cljs.core._equiv["_"] = (function (x,o){
  1199. return cljs.core.identical_QMARK_.call(null,x,o);
  1200. }));
  1201. /**
  1202. * Returns true if x is logical false, false otherwise.
  1203. */
  1204. cljs.core.not = (function not(x){
  1205. if(cljs.core.truth_(x))
  1206. {return false;
  1207. } else
  1208. {return true;
  1209. }
  1210. });
  1211. /**
  1212. * conj[oin]. Returns a new collection with the xs
  1213. * 'added'. (conj nil item) returns (item).  The 'addition' may
  1214. * happen at different 'places' depending on the concrete type.
  1215. * @param {...*} var_args
  1216. */
  1217. cljs.core.conj = (function() {
  1218. var conj = null;
  1219. var conj__2123 = (function (coll,x){
  1220. return cljs.core._conj.call(null,coll,x);
  1221. });
  1222. var conj__2124 = (function() {
  1223. var G__2126__delegate = function (coll,x,xs){
  1224. var G__2127,G__2128;G__2127=G__2128=new Object();
  1225. while(G__2127===G__2128){
  1226. G__2127=(function(continue_val){
  1227. if(cljs.core.truth_(xs))
  1228. {{
  1229. var G__2129 = conj.call(null,coll,x);
  1230. var G__2130 = cljs.core.first.call(null,xs);
  1231. var G__2131 = cljs.core.next.call(null,xs);
  1232. coll = G__2129;
  1233. x = G__2130;
  1234. xs = G__2131;
  1235. return continue_val;
  1236. }
  1237. } else
  1238. {return conj.call(null,coll,x);
  1239. }
  1240. })(G__2128);}
  1241. return G__2127;
  1242. };
  1243. var G__2126 = function (coll,x,var_args){
  1244. var xs = null;
  1245. if (goog.isDef(var_args)) {
  1246.   xs = cljs.core.array_seq(Array.prototype.slice.call(arguments, 2),0);
  1247. }
  1248. return G__2126__delegate.call(this, coll, x, xs);
  1249. };
  1250. G__2126.cljs$lang$maxFixedArity = 2;
  1251. G__2126.cljs$lang$applyTo = (function (arglist__2132){
  1252. var coll = cljs.core.first(arglist__2132);
  1253. var x = cljs.core.first(cljs.core.next(arglist__2132));
  1254. var xs = cljs.core.rest(cljs.core.next(arglist__2132));
  1255. return G__2126__delegate.call(this, coll, x, xs);
  1256. });
  1257. return G__2126;
  1258. })()
  1259. ;
  1260. conj = function(coll,x,var_args){
  1261. var xs = var_args;
  1262. switch(arguments.length){
  1263. case  2 :
  1264. return conj__2123.call(this,coll,x);
  1265. default:
  1266. return conj__2124.apply(this,arguments);
  1267. }
  1268. throw('Invalid arity: ' + arguments.length);
  1269. };
  1270. conj.cljs$lang$maxFixedArity = 2;
  1271. conj.cljs$lang$applyTo = conj__2124.cljs$lang$applyTo;
  1272. return conj;
  1273. })()
  1274. ;
  1275. /**
  1276. * Returns an empty collection of the same category as coll, or nil
  1277. */
  1278. cljs.core.empty = (function empty(coll){
  1279. return cljs.core._empty.call(null,coll);
  1280. });
  1281. /**
  1282. * Returns the number of items in the collection. (count nil) returns
  1283. * 0.  Also works on strings, arrays, and Maps
  1284. */
  1285. cljs.core.count = (function count(coll){
  1286. return cljs.core._count.call(null,coll);
  1287. });
  1288. /**
  1289. * Returns the value at the index. get returns nil if index out of
  1290. * bounds, nth throws an exception unless not-found is supplied.  nth
  1291. * also works for strings, arrays, regex Matchers and Lists, and,
  1292. * in O(n) time, for sequences.
  1293. */
  1294. cljs.core.nth = (function() {
  1295. var nth = null;
  1296. var nth__2133 = (function (coll,n){
  1297. return cljs.core._nth.call(null,coll,n);
  1298. });
  1299. var nth__2134 = (function (coll,n,not_found){
  1300. return cljs.core._nth.call(null,coll,n,not_found);
  1301. });
  1302. nth = function(coll,n,not_found){
  1303. switch(arguments.length){
  1304. case  2 :
  1305. return nth__2133.call(this,coll,n);
  1306. case  3 :
  1307. return nth__2134.call(this,coll,n,not_found);
  1308. }
  1309. throw('Invalid arity: ' + arguments.length);
  1310. };
  1311. return nth;
  1312. })()
  1313. ;
  1314. /**
  1315. * Returns the value mapped to key, not-found or nil if key not present.
  1316. */
  1317. cljs.core.get = (function() {
  1318. var get = null;
  1319. var get__2136 = (function (o,k){
  1320. return cljs.core._lookup.call(null,o,k);
  1321. });
  1322. var get__2137 = (function (o,k,not_found){
  1323. return cljs.core._lookup.call(null,o,k,not_found);
  1324. });
  1325. get = function(o,k,not_found){
  1326. switch(arguments.length){
  1327. case  2 :
  1328. return get__2136.call(this,o,k);
  1329. case  3 :
  1330. return get__2137.call(this,o,k,not_found);
  1331. }
  1332. throw('Invalid arity: ' + arguments.length);
  1333. };
  1334. return get;
  1335. })()
  1336. ;
  1337. /**
  1338. * assoc[iate]. When applied to a map, returns a new map of the
  1339. * same (hashed/sorted) type, that contains the mapping of key(s) to
  1340. * val(s). When applied to a vector, returns a new vector that
  1341. * contains val at index.
  1342. * @param {...*} var_args
  1343. */
  1344. cljs.core.assoc = (function() {
  1345. var assoc = null;
  1346. var assoc__2140 = (function (coll,k,v){
  1347. return cljs.core._assoc.call(null,coll,k,v);
  1348. });
  1349. var assoc__2141 = (function() {
  1350. var G__2143__delegate = function (coll,k,v,kvs){
  1351. var G__2144,G__2145;G__2144=G__2145=new Object();
  1352. while(G__2144===G__2145){
  1353. G__2144=(function(continue_val){
  1354. var ret__2139 = assoc.call(null,coll,k,v);
  1355.  
  1356. if(cljs.core.truth_(kvs))
  1357. {{
  1358. var G__2146 = ret__2139;
  1359. var G__2147 = cljs.core.first.call(null,kvs);
  1360. var G__2148 = cljs.core.second.call(null,kvs);
  1361. var G__2149 = cljs.core.nnext.call(null,kvs);
  1362. coll = G__2146;
  1363. k = G__2147;
  1364. v = G__2148;
  1365. kvs = G__2149;
  1366. return continue_val;
  1367. }
  1368. } else
  1369. {return ret__2139;
  1370. }
  1371. })(G__2145);}
  1372. return G__2144;
  1373. };
  1374. var G__2143 = function (coll,k,v,var_args){
  1375. var kvs = null;
  1376. if (goog.isDef(var_args)) {
  1377.   kvs = cljs.core.array_seq(Array.prototype.slice.call(arguments, 3),0);
  1378. }
  1379. return G__2143__delegate.call(this, coll, k, v, kvs);
  1380. };
  1381. G__2143.cljs$lang$maxFixedArity = 3;
  1382. G__2143.cljs$lang$applyTo = (function (arglist__2150){
  1383. var coll = cljs.core.first(arglist__2150);
  1384. var k = cljs.core.first(cljs.core.next(arglist__2150));
  1385. var v = cljs.core.first(cljs.core.next(cljs.core.next(arglist__2150)));
  1386. var kvs = cljs.core.rest(cljs.core.next(cljs.core.next(arglist__2150)));
  1387. return G__2143__delegate.call(this, coll, k, v, kvs);
  1388. });
  1389. return G__2143;
  1390. })()
  1391. ;
  1392. assoc = function(coll,k,v,var_args){
  1393. var kvs = var_args;
  1394. switch(arguments.length){
  1395. case  3 :
  1396. return assoc__2140.call(this,coll,k,v);
  1397. default:
  1398. return assoc__2141.apply(this,arguments);
  1399. }
  1400. throw('Invalid arity: ' + arguments.length);
  1401. };
  1402. assoc.cljs$lang$maxFixedArity = 3;
  1403. assoc.cljs$lang$applyTo = assoc__2141.cljs$lang$applyTo;
  1404. return assoc;
  1405. })()
  1406. ;
  1407. /**
  1408. * dissoc[iate]. Returns a new map of the same (hashed/sorted) type,
  1409. * that does not contain a mapping for key(s).
  1410. * @param {...*} var_args
  1411. */
  1412. cljs.core.dissoc = (function() {
  1413. var dissoc = null;
  1414. var dissoc__2152 = (function (coll){
  1415. return coll;
  1416. });
  1417. var dissoc__2153 = (function (coll,k){
  1418. return cljs.core._dissoc.call(null,coll,k);
  1419. });
  1420. var dissoc__2154 = (function() {
  1421. var G__2156__delegate = function (coll,k,ks){
  1422. var G__2157,G__2158;G__2157=G__2158=new Object();
  1423. while(G__2157===G__2158){
  1424. G__2157=(function(continue_val){
  1425. var ret__2151 = dissoc.call(null,coll,k);
  1426.  
  1427. if(cljs.core.truth_(ks))
  1428. {{
  1429. var G__2159 = ret__2151;
  1430. var G__2160 = cljs.core.first.call(null,ks);
  1431. var G__2161 = cljs.core.next.call(null,ks);
  1432. coll = G__2159;
  1433. k = G__2160;
  1434. ks = G__2161;
  1435. return continue_val;
  1436. }
  1437. } else
  1438. {return ret__2151;
  1439. }
  1440. })(G__2158);}
  1441. return G__2157;
  1442. };
  1443. var G__2156 = function (coll,k,var_args){
  1444. var ks = null;
  1445. if (goog.isDef(var_args)) {
  1446.   ks = cljs.core.array_seq(Array.prototype.slice.call(arguments, 2),0);
  1447. }
  1448. return G__2156__delegate.call(this, coll, k, ks);
  1449. };
  1450. G__2156.cljs$lang$maxFixedArity = 2;
  1451. G__2156.cljs$lang$applyTo = (function (arglist__2162){
  1452. var coll = cljs.core.first(arglist__2162);
  1453. var k = cljs.core.first(cljs.core.next(arglist__2162));
  1454. var ks = cljs.core.rest(cljs.core.next(arglist__2162));
  1455. return G__2156__delegate.call(this, coll, k, ks);
  1456. });
  1457. return G__2156;
  1458. })()
  1459. ;
  1460. dissoc = function(coll,k,var_args){
  1461. var ks = var_args;
  1462. switch(arguments.length){
  1463. case  1 :
  1464. return dissoc__2152.call(this,coll);
  1465. case  2 :
  1466. return dissoc__2153.call(this,coll,k);
  1467. default:
  1468. return dissoc__2154.apply(this,arguments);
  1469. }
  1470. throw('Invalid arity: ' + arguments.length);
  1471. };
  1472. dissoc.cljs$lang$maxFixedArity = 2;
  1473. dissoc.cljs$lang$applyTo = dissoc__2154.cljs$lang$applyTo;
  1474. return dissoc;
  1475. })()
  1476. ;
  1477. /**
  1478. * Returns an object of the same type and value as obj, with
  1479. * map m as its metadata.
  1480. */
  1481. cljs.core.with_meta = (function with_meta(o,meta){
  1482. return cljs.core._with_meta.call(null,o,meta);
  1483. });
  1484. /**
  1485. * Returns the metadata of obj, returns nil if there is no metadata.
  1486. */
  1487. cljs.core.meta = (function meta(o){
  1488. if(cljs.core.truth_((function (){var x__105__auto____2163 = o;
  1489.  
  1490. if(cljs.core.truth_((function (){var and__3574__auto____2164 = x__105__auto____2163;
  1491.  
  1492. if(cljs.core.truth_(and__3574__auto____2164))
  1493. {return x__105__auto____2163.cljs$core$IMeta$;
  1494. } else
  1495. {return and__3574__auto____2164;
  1496. }
  1497. })()))
  1498. {return true;
  1499. } else
  1500. {return cljs.core.type_satisfies_.call(null,cljs.core.IMeta,x__105__auto____2163);
  1501. }
  1502. })()))
  1503. {return cljs.core._meta.call(null,o);
  1504. } else
  1505. {return null;
  1506. }
  1507. });
  1508. /**
  1509. * For a list or queue, same as first, for a vector, same as, but much
  1510. * more efficient than, last. If the collection is empty, returns nil.
  1511. */
  1512. cljs.core.peek = (function peek(coll){
  1513. return cljs.core._peek.call(null,coll);
  1514. });
  1515. /**
  1516. * For a list or queue, returns a new list/queue without the first
  1517. * item, for a vector, returns a new vector without the last item.
  1518. * Note - not the same as next/butlast.
  1519. */
  1520. cljs.core.pop = (function pop(coll){
  1521. return cljs.core._pop.call(null,coll);
  1522. });
  1523. /**
  1524. * disj[oin]. Returns a new set of the same (hashed/sorted) type, that
  1525. * does not contain key(s).
  1526. * @param {...*} var_args
  1527. */
  1528. cljs.core.disj = (function() {
  1529. var disj = null;
  1530. var disj__2166 = (function (coll){
  1531. return coll;
  1532. });
  1533. var disj__2167 = (function (coll,k){
  1534. return cljs.core._disjoin.call(null,coll,k);
  1535. });
  1536. var disj__2168 = (function() {
  1537. var G__2170__delegate = function (coll,k,ks){
  1538. var G__2171,G__2172;G__2171=G__2172=new Object();
  1539. while(G__2171===G__2172){
  1540. G__2171=(function(continue_val){
  1541. var ret__2165 = disj.call(null,coll,k);
  1542.  
  1543. if(cljs.core.truth_(ks))
  1544. {{
  1545. var G__2173 = ret__2165;
  1546. var G__2174 = cljs.core.first.call(null,ks);
  1547. var G__2175 = cljs.core.next.call(null,ks);
  1548. coll = G__2173;
  1549. k = G__2174;
  1550. ks = G__2175;
  1551. return continue_val;
  1552. }
  1553. } else
  1554. {return ret__2165;
  1555. }
  1556. })(G__2172);}
  1557. return G__2171;
  1558. };
  1559. var G__2170 = function (coll,k,var_args){
  1560. var ks = null;
  1561. if (goog.isDef(var_args)) {
  1562.   ks = cljs.core.array_seq(Array.prototype.slice.call(arguments, 2),0);
  1563. }
  1564. return G__2170__delegate.call(this, coll, k, ks);
  1565. };
  1566. G__2170.cljs$lang$maxFixedArity = 2;
  1567. G__2170.cljs$lang$applyTo = (function (arglist__2176){
  1568. var coll = cljs.core.first(arglist__2176);
  1569. var k = cljs.core.first(cljs.core.next(arglist__2176));
  1570. var ks = cljs.core.rest(cljs.core.next(arglist__2176));
  1571. return G__2170__delegate.call(this, coll, k, ks);
  1572. });
  1573. return G__2170;
  1574. })()
  1575. ;
  1576. disj = function(coll,k,var_args){
  1577. var ks = var_args;
  1578. switch(arguments.length){
  1579. case  1 :
  1580. return disj__2166.call(this,coll);
  1581. case  2 :
  1582. return disj__2167.call(this,coll,k);
  1583. default:
  1584. return disj__2168.apply(this,arguments);
  1585. }
  1586. throw('Invalid arity: ' + arguments.length);
  1587. };
  1588. disj.cljs$lang$maxFixedArity = 2;
  1589. disj.cljs$lang$applyTo = disj__2168.cljs$lang$applyTo;
  1590. return disj;
  1591. })()
  1592. ;
  1593. cljs.core.hash = (function hash(o){
  1594. return cljs.core._hash.call(null,o);
  1595. });
  1596. /**
  1597. * Returns true if coll has no items - same as (not (seq coll)).
  1598. * Please use the idiom (seq x) rather than (not (empty? x))
  1599. */
  1600. cljs.core.empty_QMARK_ = (function empty_QMARK_(coll){
  1601. return cljs.core.not.call(null,cljs.core.seq.call(null,coll));
  1602. });
  1603. /**
  1604. * Returns true if x satisfies ICollection
  1605. */
  1606. cljs.core.coll_QMARK_ = (function coll_QMARK_(x){
  1607. if(cljs.core.truth_(cljs.core.nil_QMARK_.call(null,x)))
  1608. {return false;
  1609. } else
  1610. {var x__105__auto____2177 = x;
  1611.  
  1612. if(cljs.core.truth_((function (){var and__3574__auto____2178 = x__105__auto____2177;
  1613.  
  1614. if(cljs.core.truth_(and__3574__auto____2178))
  1615. {return x__105__auto____2177.cljs$core$ICollection$;
  1616. } else
  1617. {return and__3574__auto____2178;
  1618. }
  1619. })()))
  1620. {return true;
  1621. } else
  1622. {return cljs.core.type_satisfies_.call(null,cljs.core.ICollection,x__105__auto____2177);
  1623. }
  1624. }
  1625. });
  1626. /**
  1627. * Returns true if x satisfies ISet
  1628. */
  1629. cljs.core.set_QMARK_ = (function set_QMARK_(x){
  1630. if(cljs.core.truth_(cljs.core.nil_QMARK_.call(null,x)))
  1631. {return false;
  1632. } else
  1633. {var x__105__auto____2179 = x;
  1634.  
  1635. if(cljs.core.truth_((function (){var and__3574__auto____2180 = x__105__auto____2179;
  1636.  
  1637. if(cljs.core.truth_(and__3574__auto____2180))
  1638. {return x__105__auto____2179.cljs$core$ISet$;
  1639. } else
  1640. {return and__3574__auto____2180;
  1641. }
  1642. })()))
  1643. {return true;
  1644. } else
  1645. {return cljs.core.type_satisfies_.call(null,cljs.core.ISet,x__105__auto____2179);
  1646. }
  1647. }
  1648. });
  1649. /**
  1650. * Returns true if coll implements Associative
  1651. */
  1652. cljs.core.associative_QMARK_ = (function associative_QMARK_(x){
  1653. var x__105__auto____2181 = x;
  1654.  
  1655. if(cljs.core.truth_((function (){var and__3574__auto____2182 = x__105__auto____2181;
  1656.  
  1657. if(cljs.core.truth_(and__3574__auto____2182))
  1658. {return x__105__auto____2181.cljs$core$IAssociative$;
  1659. } else
  1660. {return and__3574__auto____2182;
  1661. }
  1662. })()))
  1663. {return true;
  1664. } else
  1665. {return cljs.core.type_satisfies_.call(null,cljs.core.IAssociative,x__105__auto____2181);
  1666. }
  1667. });
  1668. /**
  1669. * Returns true if coll satisfies ISequential
  1670. */
  1671. cljs.core.sequential_QMARK_ = (function sequential_QMARK_(x){
  1672. var x__105__auto____2183 = x;
  1673.  
  1674. if(cljs.core.truth_((function (){var and__3574__auto____2184 = x__105__auto____2183;
  1675.  
  1676. if(cljs.core.truth_(and__3574__auto____2184))
  1677. {return x__105__auto____2183.cljs$core$ISequential$;
  1678. } else
  1679. {return and__3574__auto____2184;
  1680. }
  1681. })()))
  1682. {return true;
  1683. } else
  1684. {return cljs.core.type_satisfies_.call(null,cljs.core.ISequential,x__105__auto____2183);
  1685. }
  1686. });
  1687. /**
  1688. * Returns true if coll implements count in constant time
  1689. */
  1690. cljs.core.counted_QMARK_ = (function counted_QMARK_(x){
  1691. var x__105__auto____2185 = x;
  1692.  
  1693. if(cljs.core.truth_((function (){var and__3574__auto____2186 = x__105__auto____2185;
  1694.  
  1695. if(cljs.core.truth_(and__3574__auto____2186))
  1696. {return x__105__auto____2185.cljs$core$ICounted$;
  1697. } else
  1698. {return and__3574__auto____2186;
  1699. }
  1700. })()))
  1701. {return true;
  1702. } else
  1703. {return cljs.core.type_satisfies_.call(null,cljs.core.ICounted,x__105__auto____2185);
  1704. }
  1705. });
  1706. /**
  1707. * Return true if x satisfies IMap
  1708. */
  1709. cljs.core.map_QMARK_ = (function map_QMARK_(x){
  1710. if(cljs.core.truth_(cljs.core.nil_QMARK_.call(null,x)))
  1711. {return false;
  1712. } else
  1713. {var x__105__auto____2187 = x;
  1714.  
  1715. if(cljs.core.truth_((function (){var and__3574__auto____2188 = x__105__auto____2187;
  1716.  
  1717. if(cljs.core.truth_(and__3574__auto____2188))
  1718. {return x__105__auto____2187.cljs$core$IMap$;
  1719. } else
  1720. {return and__3574__auto____2188;
  1721. }
  1722. })()))
  1723. {return true;
  1724. } else
  1725. {return cljs.core.type_satisfies_.call(null,cljs.core.IMap,x__105__auto____2187);
  1726. }
  1727. }
  1728. });
  1729. /**
  1730. * Return true if x satisfies IVector
  1731. */
  1732. cljs.core.vector_QMARK_ = (function vector_QMARK_(x){
  1733. var x__105__auto____2189 = x;
  1734.  
  1735. if(cljs.core.truth_((function (){var and__3574__auto____2190 = x__105__auto____2189;
  1736.  
  1737. if(cljs.core.truth_(and__3574__auto____2190))
  1738. {return x__105__auto____2189.cljs$core$IVector$;
  1739. } else
  1740. {return and__3574__auto____2190;
  1741. }
  1742. })()))
  1743. {return true;
  1744. } else
  1745. {return cljs.core.type_satisfies_.call(null,cljs.core.IVector,x__105__auto____2189);
  1746. }
  1747. });
  1748. cljs.core.js_obj = (function js_obj(){
  1749. return {};
  1750. });
  1751. cljs.core.js_keys = (function js_keys(obj){
  1752. var keys__2191 = cljs.core.array.call(null);
  1753.  
  1754. goog.object.forEach.call(null,obj,(function (val,key,obj){
  1755. return keys__2191.push(key);
  1756. }));
  1757. return keys__2191;
  1758. });
  1759. cljs.core.js_delete = (function js_delete(obj,key){
  1760. return delete obj[key];
  1761. });
  1762. cljs.core.lookup_sentinel = cljs.core.js_obj.call(null);
  1763. /**
  1764. * Returns true if x is the value false, false otherwise.
  1765. */
  1766. cljs.core.false_QMARK_ = (function false_QMARK_(x){
  1767. return x === false;
  1768. });
  1769. /**
  1770. * Returns true if x is the value true, false otherwise.
  1771. */
  1772. cljs.core.true_QMARK_ = (function true_QMARK_(x){
  1773. return x === true;
  1774. });
  1775. cljs.core.undefined_QMARK_ = (function undefined_QMARK_(x){
  1776. return (void 0 === x);
  1777. });
  1778. cljs.core.instance_QMARK_ = (function instance_QMARK_(t,o){
  1779. return (o instanceof t);
  1780. });
  1781. /**
  1782. * Return true if s satisfies ISeq
  1783. */
  1784. cljs.core.seq_QMARK_ = (function seq_QMARK_(s){
  1785. if(cljs.core.truth_(cljs.core.nil_QMARK_.call(null,s)))
  1786. {return false;
  1787. } else
  1788. {var x__105__auto____2192 = s;
  1789.  
  1790. if(cljs.core.truth_((function (){var and__3574__auto____2193 = x__105__auto____2192;
  1791.  
  1792. if(cljs.core.truth_(and__3574__auto____2193))
  1793. {return x__105__auto____2192.cljs$core$ISeq$;
  1794. } else
  1795. {return and__3574__auto____2193;
  1796. }
  1797. })()))
  1798. {return true;
  1799. } else
  1800. {return cljs.core.type_satisfies_.call(null,cljs.core.ISeq,x__105__auto____2192);
  1801. }
  1802. }
  1803. });
  1804. cljs.core.boolean$ = (function boolean$(x){
  1805. if(cljs.core.truth_(x))
  1806. {return true;
  1807. } else
  1808. {return false;
  1809. }
  1810. });
  1811. cljs.core.string_QMARK_ = (function string_QMARK_(x){
  1812. var and__3574__auto____2194 = goog.isString.call(null,x);
  1813.  
  1814. if(cljs.core.truth_(and__3574__auto____2194))
  1815. {return cljs.core.not.call(null,(function (){var or__3576__auto____2195 = cljs.core._EQ_.call(null,x.charAt(0),"﷐");
  1816.  
  1817. if(cljs.core.truth_(or__3576__auto____2195))
  1818. {return or__3576__auto____2195;
  1819. } else
  1820. {return cljs.core._EQ_.call(null,x.charAt(0),"ï·‘");
  1821. }
  1822. })());
  1823. } else
  1824. {return and__3574__auto____2194;
  1825. }
  1826. });
  1827. cljs.core.keyword_QMARK_ = (function keyword_QMARK_(x){
  1828. var and__3574__auto____2196 = goog.isString.call(null,x);
  1829.  
  1830. if(cljs.core.truth_(and__3574__auto____2196))
  1831. {return cljs.core._EQ_.call(null,x.charAt(0),"﷐");
  1832. } else
  1833. {return and__3574__auto____2196;
  1834. }
  1835. });
  1836. cljs.core.symbol_QMARK_ = (function symbol_QMARK_(x){
  1837. var and__3574__auto____2197 = goog.isString.call(null,x);
  1838.  
  1839. if(cljs.core.truth_(and__3574__auto____2197))
  1840. {return cljs.core._EQ_.call(null,x.charAt(0),"ï·‘");
  1841. } else
  1842. {return and__3574__auto____2197;
  1843. }
  1844. });
  1845. cljs.core.number_QMARK_ = (function number_QMARK_(n){
  1846. return goog.isNumber.call(null,n);
  1847. });
  1848. cljs.core.fn_QMARK_ = (function fn_QMARK_(f){
  1849. return goog.isFunction.call(null,f);
  1850. });
  1851. /**
  1852. * Returns true if n is an integer.  Warning: returns true on underflow condition.
  1853. */
  1854. cljs.core.integer_QMARK_ = (function integer_QMARK_(n){
  1855. var and__3574__auto____2198 = cljs.core.number_QMARK_.call(null,n);
  1856.  
  1857. if(cljs.core.truth_(and__3574__auto____2198))
  1858. {return (n == n.toFixed());
  1859. } else
  1860. {return and__3574__auto____2198;
  1861. }
  1862. });
  1863. /**
  1864. * Returns true if key is present in the given collection, otherwise
  1865. * returns false.  Note that for numerically indexed collections like
  1866. * vectors and arrays, this tests if the numeric key is within the
  1867. * range of indexes. 'contains?' operates constant or logarithmic time;
  1868. * it will not perform a linear search for a value.  See also 'some'.
  1869. */
  1870. cljs.core.contains_QMARK_ = (function contains_QMARK_(coll,v){
  1871. if(cljs.core.truth_(cljs.core.identical_QMARK_.call(null,cljs.core._lookup.call(null,coll,v,cljs.core.lookup_sentinel),cljs.core.lookup_sentinel)))
  1872. {return false;
  1873. } else
  1874. {return true;
  1875. }
  1876. });
  1877. /**
  1878. * Returns the map entry for key, or nil if key not present.
  1879. */
  1880. cljs.core.find = (function find(coll,k){
  1881. if(cljs.core.truth_((function (){var and__3574__auto____2199 = coll;
  1882.  
  1883. if(cljs.core.truth_(and__3574__auto____2199))
  1884. {var and__3574__auto____2200 = cljs.core.associative_QMARK_.call(null,coll);
  1885.  
  1886. if(cljs.core.truth_(and__3574__auto____2200))
  1887. {return cljs.core.contains_QMARK_.call(null,coll,k);
  1888. } else
  1889. {return and__3574__auto____2200;
  1890. }
  1891. } else
  1892. {return and__3574__auto____2199;
  1893. }
  1894. })()))
  1895. {return cljs.core.Vector.fromArray([k,cljs.core._lookup.call(null,coll,k)]);
  1896. } else
  1897. {return null;
  1898. }
  1899. });
  1900. /**
  1901. * Returns true if no two of the arguments are =
  1902. * @param {...*} var_args
  1903. */
  1904. cljs.core.distinct_QMARK_ = (function() {
  1905. var distinct_QMARK_ = null;
  1906. var distinct_QMARK___2205 = (function (x){
  1907. return true;
  1908. });
  1909. var distinct_QMARK___2206 = (function (x,y){
  1910. return cljs.core.not.call(null,cljs.core._EQ_.call(null,x,y));
  1911. });
  1912. var distinct_QMARK___2207 = (function() {
  1913. var G__2209__delegate = function (x,y,more){
  1914. if(cljs.core.truth_(cljs.core.not.call(null,cljs.core._EQ_.call(null,x,y))))
  1915. {var s__2201 = cljs.core.set([y,x]);
  1916. var xs__2202 = more;
  1917.  
  1918. var G__2210,G__2211;G__2210=G__2211=new Object();
  1919. while(G__2210===G__2211){
  1920. G__2210=(function(continue_val){
  1921. var x__2203 = cljs.core.first.call(null,xs__2202);
  1922. var etc__2204 = cljs.core.next.call(null,xs__2202);
  1923.  
  1924. if(cljs.core.truth_(xs__2202))
  1925. {if(cljs.core.truth_(cljs.core.contains_QMARK_.call(null,s__2201,x__2203)))
  1926. {return false;
  1927. } else
  1928. {{
  1929. var G__2212 = cljs.core.conj.call(null,s__2201,x__2203);
  1930. var G__2213 = etc__2204;
  1931. s__2201 = G__2212;
  1932. xs__2202 = G__2213;
  1933. return continue_val;
  1934. }
  1935. }
  1936. } else
  1937. {return true;
  1938. }
  1939. })(G__2211);}
  1940. return G__2210;
  1941. } else
  1942. {return false;
  1943. }
  1944. };
  1945. var G__2209 = function (x,y,var_args){
  1946. var more = null;
  1947. if (goog.isDef(var_args)) {
  1948.   more = cljs.core.array_seq(Array.prototype.slice.call(arguments, 2),0);
  1949. }
  1950. return G__2209__delegate.call(this, x, y, more);
  1951. };
  1952. G__2209.cljs$lang$maxFixedArity = 2;
  1953. G__2209.cljs$lang$applyTo = (function (arglist__2214){
  1954. var x = cljs.core.first(arglist__2214);
  1955. var y = cljs.core.first(cljs.core.next(arglist__2214));
  1956. var more = cljs.core.rest(cljs.core.next(arglist__2214));
  1957. return G__2209__delegate.call(this, x, y, more);
  1958. });
  1959. return G__2209;
  1960. })()
  1961. ;
  1962. distinct_QMARK_ = function(x,y,var_args){
  1963. var more = var_args;
  1964. switch(arguments.length){
  1965. case  1 :
  1966. return distinct_QMARK___2205.call(this,x);
  1967. case  2 :
  1968. return distinct_QMARK___2206.call(this,x,y);
  1969. default:
  1970. return distinct_QMARK___2207.apply(this,arguments);
  1971. }
  1972. throw('Invalid arity: ' + arguments.length);
  1973. };
  1974. distinct_QMARK_.cljs$lang$maxFixedArity = 2;
  1975. distinct_QMARK_.cljs$lang$applyTo = distinct_QMARK___2207.cljs$lang$applyTo;
  1976. return distinct_QMARK_;
  1977. })()
  1978. ;
  1979. /**
  1980. * Comparator. Returns a negative number, zero, or a positive number
  1981. * when x is logically 'less than', 'equal to', or 'greater than'
  1982. * y. Uses google.array.defaultCompare.
  1983. */
  1984. cljs.core.compare = (function compare(x,y){
  1985. return goog.array.defaultCompare.call(null,x,y);
  1986. });
  1987. /**
  1988. * Given a fn that might be boolean valued or a comparator,
  1989. * return a fn that is a comparator.
  1990. */
  1991. cljs.core.fn__GT_comparator = (function fn__GT_comparator(f){
  1992. if(cljs.core.truth_(cljs.core._EQ_.call(null,f,cljs.core.compare)))
  1993. {return cljs.core.compare;
  1994. } else
  1995. {return (function (x,y){
  1996. var r__2215 = f.call(null,x,y);
  1997.  
  1998. if(cljs.core.truth_(cljs.core.number_QMARK_.call(null,r__2215)))
  1999. {return r__2215;
  2000. } else
  2001. {if(cljs.core.truth_(r__2215))
  2002. {return -1;
  2003. } else
  2004. {if(cljs.core.truth_(f.call(null,y,x)))
  2005. {return 1;
  2006. } else
  2007. {return 0;
  2008. }
  2009. }
  2010. }
  2011. });
  2012. }
  2013. });
  2014. /**
  2015. * Returns a sorted sequence of the items in coll. Comp can be
  2016. * boolean-valued comparison funcion, or a -/0/+ valued comparator.
  2017. * Comp defaults to compare.
  2018. */
  2019. cljs.core.sort = (function() {
  2020. var sort = null;
  2021. var sort__2217 = (function (coll){
  2022. return sort.call(null,cljs.core.compare,coll);
  2023. });
  2024. var sort__2218 = (function (comp,coll){
  2025. if(cljs.core.truth_(cljs.core.seq.call(null,coll)))
  2026. {var a__2216 = cljs.core.to_array.call(null,coll);
  2027.  
  2028. goog.array.stableSort.call(null,a__2216,cljs.core.fn__GT_comparator.call(null,comp));
  2029. return cljs.core.seq.call(null,a__2216);
  2030. } else
  2031. {return cljs.core.List.EMPTY;
  2032. }
  2033. });
  2034. sort = function(comp,coll){
  2035. switch(arguments.length){
  2036. case  1 :
  2037. return sort__2217.call(this,comp);
  2038. case  2 :
  2039. return sort__2218.call(this,comp,coll);
  2040. }
  2041. throw('Invalid arity: ' + arguments.length);
  2042. };
  2043. return sort;
  2044. })()
  2045. ;
  2046. /**
  2047. * Returns a sorted sequence of the items in coll, where the sort
  2048. * order is determined by comparing (keyfn item).  Comp can be
  2049. * boolean-valued comparison funcion, or a -/0/+ valued comparator.
  2050. * Comp defaults to compare.
  2051. */
  2052. cljs.core.sort_by = (function() {
  2053. var sort_by = null;
  2054. var sort_by__2220 = (function (keyfn,coll){
  2055. return sort_by.call(null,keyfn,cljs.core.compare,coll);
  2056. });
  2057. var sort_by__2221 = (function (keyfn,comp,coll){
  2058. return cljs.core.sort.call(null,(function (x,y){
  2059. return cljs.core.fn__GT_comparator.call(null,comp).call(null,keyfn.call(null,x),keyfn.call(null,y));
  2060. }),coll);
  2061. });
  2062. sort_by = function(keyfn,comp,coll){
  2063. switch(arguments.length){
  2064. case  2 :
  2065. return sort_by__2220.call(this,keyfn,comp);
  2066. case  3 :
  2067. return sort_by__2221.call(this,keyfn,comp,coll);
  2068. }
  2069. throw('Invalid arity: ' + arguments.length);
  2070. };
  2071. return sort_by;
  2072. })()
  2073. ;
  2074. /**
  2075. * f should be a function of 2 arguments. If val is not supplied,
  2076. * returns the result of applying f to the first 2 items in coll, then
  2077. * applying f to that result and the 3rd item, etc. If coll contains no
  2078. * items, f must accept no arguments as well, and reduce returns the
  2079. * result of calling f with no arguments.  If coll has only 1 item, it
  2080. * is returned and f is not called.  If val is supplied, returns the
  2081. * result of applying f to val and the first item in coll, then
  2082. * applying f to that result and the 2nd item, etc. If coll contains no
  2083. * items, returns val and f is not called.
  2084. */
  2085. cljs.core.reduce = (function() {
  2086. var reduce = null;
  2087. var reduce__2223 = (function (f,coll){
  2088. return cljs.core._reduce.call(null,coll,f);
  2089. });
  2090. var reduce__2224 = (function (f,val,coll){
  2091. return cljs.core._reduce.call(null,coll,f,val);
  2092. });
  2093. reduce = function(f,val,coll){
  2094. switch(arguments.length){
  2095. case  2 :
  2096. return reduce__2223.call(this,f,val);
  2097. case  3 :
  2098. return reduce__2224.call(this,f,val,coll);
  2099. }
  2100. throw('Invalid arity: ' + arguments.length);
  2101. };
  2102. return reduce;
  2103. })()
  2104. ;
  2105. cljs.core.seq_reduce = (function() {
  2106. var seq_reduce = null;
  2107. var seq_reduce__2230 = (function (f,coll){
  2108. var temp__3723__auto____2226 = cljs.core.seq.call(null,coll);
  2109.  
  2110. if(cljs.core.truth_(temp__3723__auto____2226))
  2111. {var s__2227 = temp__3723__auto____2226;
  2112.  
  2113. return cljs.core.reduce.call(null,f,cljs.core.first.call(null,s__2227),cljs.core.next.call(null,s__2227));
  2114. } else
  2115. {return f.call(null);
  2116. }
  2117. });
  2118. var seq_reduce__2231 = (function (f,val,coll){
  2119. var val__2228 = val;
  2120. var coll__2229 = cljs.core.seq.call(null,coll);
  2121.  
  2122. var G__2233,G__2234;G__2233=G__2234=new Object();
  2123. while(G__2233===G__2234){
  2124. G__2233=(function(continue_val){
  2125. if(cljs.core.truth_(coll__2229))
  2126. {{
  2127. var G__2235 = f.call(null,val__2228,cljs.core.first.call(null,coll__2229));
  2128. var G__2236 = cljs.core.next.call(null,coll__2229);
  2129. val__2228 = G__2235;
  2130. coll__2229 = G__2236;
  2131. return continue_val;
  2132. }
  2133. } else
  2134. {return val__2228;
  2135. }
  2136. })(G__2234);}
  2137. return G__2233;
  2138. });
  2139. seq_reduce = function(f,val,coll){
  2140. switch(arguments.length){
  2141. case  2 :
  2142. return seq_reduce__2230.call(this,f,val);
  2143. case  3 :
  2144. return seq_reduce__2231.call(this,f,val,coll);
  2145. }
  2146. throw('Invalid arity: ' + arguments.length);
  2147. };
  2148. return seq_reduce;
  2149. })()
  2150. ;
  2151. (cljs.core.IReduce["_"] = true);
  2152. (cljs.core._reduce["_"] = (function() {
  2153. var G__2237 = null;
  2154. var G__2237__2238 = (function (coll,f){
  2155. return cljs.core.seq_reduce.call(null,f,coll);
  2156. });
  2157. var G__2237__2239 = (function (coll,f,start){
  2158. return cljs.core.seq_reduce.call(null,f,start,coll);
  2159. });
  2160. G__2237 = function(coll,f,start){
  2161. switch(arguments.length){
  2162. case  2 :
  2163. return G__2237__2238.call(this,coll,f);
  2164. case  3 :
  2165. return G__2237__2239.call(this,coll,f,start);
  2166. }
  2167. throw('Invalid arity: ' + arguments.length);
  2168. };
  2169. return G__2237;
  2170. })()
  2171. );
  2172. /**
  2173. * Returns the sum of nums. (+) returns 0.
  2174. * @param {...*} var_args
  2175. */
  2176. cljs.core._PLUS_ = (function() {
  2177. var _PLUS_ = null;
  2178. var _PLUS___2241 = (function (){
  2179. return 0;
  2180. });
  2181. var _PLUS___2242 = (function (x){
  2182. return x;
  2183. });
  2184. var _PLUS___2243 = (function (x,y){
  2185. return (x + y);
  2186. });
  2187. var _PLUS___2244 = (function() {
  2188. var G__2246__delegate = function (x,y,more){
  2189. return cljs.core.reduce.call(null,_PLUS_,_PLUS_.call(null,x,y),more);
  2190. };
  2191. var G__2246 = function (x,y,var_args){
  2192. var more = null;
  2193. if (goog.isDef(var_args)) {
  2194.   more = cljs.core.array_seq(Array.prototype.slice.call(arguments, 2),0);
  2195. }
  2196. return G__2246__delegate.call(this, x, y, more);
  2197. };
  2198. G__2246.cljs$lang$maxFixedArity = 2;
  2199. G__2246.cljs$lang$applyTo = (function (arglist__2247){
  2200. var x = cljs.core.first(arglist__2247);
  2201. var y = cljs.core.first(cljs.core.next(arglist__2247));
  2202. var more = cljs.core.rest(cljs.core.next(arglist__2247));
  2203. return G__2246__delegate.call(this, x, y, more);
  2204. });
  2205. return G__2246;
  2206. })()
  2207. ;
  2208. _PLUS_ = function(x,y,var_args){
  2209. var more = var_args;
  2210. switch(arguments.length){
  2211. case  0 :
  2212. return _PLUS___2241.call(this);
  2213. case  1 :
  2214. return _PLUS___2242.call(this,x);
  2215. case  2 :
  2216. return _PLUS___2243.call(this,x,y);
  2217. default:
  2218. return _PLUS___2244.apply(this,arguments);
  2219. }
  2220. throw('Invalid arity: ' + arguments.length);
  2221. };
  2222. _PLUS_.cljs$lang$maxFixedArity = 2;
  2223. _PLUS_.cljs$lang$applyTo = _PLUS___2244.cljs$lang$applyTo;
  2224. return _PLUS_;
  2225. })()
  2226. ;
  2227. /**
  2228. * If no ys are supplied, returns the negation of x, else subtracts
  2229. * the ys from x and returns the result.
  2230. * @param {...*} var_args
  2231. */
  2232. cljs.core._ = (function() {
  2233. var _ = null;
  2234. var ___2248 = (function (x){
  2235. return (- x);
  2236. });
  2237. var ___2249 = (function (x,y){
  2238. return (x - y);
  2239. });
  2240. var ___2250 = (function() {
  2241. var G__2252__delegate = function (x,y,more){
  2242. return cljs.core.reduce.call(null,_,_.call(null,x,y),more);
  2243. };
  2244. var G__2252 = function (x,y,var_args){
  2245. var more = null;
  2246. if (goog.isDef(var_args)) {
  2247.   more = cljs.core.array_seq(Array.prototype.slice.call(arguments, 2),0);
  2248. }
  2249. return G__2252__delegate.call(this, x, y, more);
  2250. };
  2251. G__2252.cljs$lang$maxFixedArity = 2;
  2252. G__2252.cljs$lang$applyTo = (function (arglist__2253){
  2253. var x = cljs.core.first(arglist__2253);
  2254. var y = cljs.core.first(cljs.core.next(arglist__2253));
  2255. var more = cljs.core.rest(cljs.core.next(arglist__2253));
  2256. return G__2252__delegate.call(this, x, y, more);
  2257. });
  2258. return G__2252;
  2259. })()
  2260. ;
  2261. _ = function(x,y,var_args){
  2262. var more = var_args;
  2263. switch(arguments.length){
  2264. case  1 :
  2265. return ___2248.call(this,x);
  2266. case  2 :
  2267. return ___2249.call(this,x,y);
  2268. default:
  2269. return ___2250.apply(this,arguments);
  2270. }
  2271. throw('Invalid arity: ' + arguments.length);
  2272. };
  2273. _.cljs$lang$maxFixedArity = 2;
  2274. _.cljs$lang$applyTo = ___2250.cljs$lang$applyTo;
  2275. return _;
  2276. })()
  2277. ;
  2278. /**
  2279. * Returns the product of nums. (*) returns 1.
  2280. * @param {...*} var_args
  2281. */
  2282. cljs.core._STAR_ = (function() {
  2283. var _STAR_ = null;
  2284. var _STAR___2254 = (function (){
  2285. return 1;
  2286. });
  2287. var _STAR___2255 = (function (x){
  2288. return x;
  2289. });
  2290. var _STAR___2256 = (function (x,y){
  2291. return (x * y);
  2292. });
  2293. var _STAR___2257 = (function() {
  2294. var G__2259__delegate = function (x,y,more){
  2295. return cljs.core.reduce.call(null,_STAR_,_STAR_.call(null,x,y),more);
  2296. };
  2297. var G__2259 = function (x,y,var_args){
  2298. var more = null;
  2299. if (goog.isDef(var_args)) {
  2300.   more = cljs.core.array_seq(Array.prototype.slice.call(arguments, 2),0);
  2301. }
  2302. return G__2259__delegate.call(this, x, y, more);
  2303. };
  2304. G__2259.cljs$lang$maxFixedArity = 2;
  2305. G__2259.cljs$lang$applyTo = (function (arglist__2260){
  2306. var x = cljs.core.first(arglist__2260);
  2307. var y = cljs.core.first(cljs.core.next(arglist__2260));
  2308. var more = cljs.core.rest(cljs.core.next(arglist__2260));
  2309. return G__2259__delegate.call(this, x, y, more);
  2310. });
  2311. return G__2259;
  2312. })()
  2313. ;
  2314. _STAR_ = function(x,y,var_args){
  2315. var more = var_args;
  2316. switch(arguments.length){
  2317. case  0 :
  2318. return _STAR___2254.call(this);
  2319. case  1 :
  2320. return _STAR___2255.call(this,x);
  2321. case  2 :
  2322. return _STAR___2256.call(this,x,y);
  2323. default:
  2324. return _STAR___2257.apply(this,arguments);
  2325. }
  2326. throw('Invalid arity: ' + arguments.length);
  2327. };
  2328. _STAR_.cljs$lang$maxFixedArity = 2;
  2329. _STAR_.cljs$lang$applyTo = _STAR___2257.cljs$lang$applyTo;
  2330. return _STAR_;
  2331. })()
  2332. ;
  2333. /**
  2334. * If no denominators are supplied, returns 1/numerator,
  2335. * else returns numerator divided by all of the denominators.
  2336. * @param {...*} var_args
  2337. */
  2338. cljs.core._SLASH_ = (function() {
  2339. var _SLASH_ = null;
  2340. var _SLASH___2261 = (function (x){
  2341. return (1 / x);
  2342. });
  2343. var _SLASH___2262 = (function (x,y){
  2344. return (x / y);
  2345. });
  2346. var _SLASH___2263 = (function() {
  2347. var G__2265__delegate = function (x,y,more){
  2348. return cljs.core.reduce.call(null,_SLASH_,_SLASH_.call(null,x,y),more);
  2349. };
  2350. var G__2265 = function (x,y,var_args){
  2351. var more = null;
  2352. if (goog.isDef(var_args)) {
  2353.   more = cljs.core.array_seq(Array.prototype.slice.call(arguments, 2),0);
  2354. }
  2355. return G__2265__delegate.call(this, x, y, more);
  2356. };
  2357. G__2265.cljs$lang$maxFixedArity = 2;
  2358. G__2265.cljs$lang$applyTo = (function (arglist__2266){
  2359. var x = cljs.core.first(arglist__2266);
  2360. var y = cljs.core.first(cljs.core.next(arglist__2266));
  2361. var more = cljs.core.rest(cljs.core.next(arglist__2266));
  2362. return G__2265__delegate.call(this, x, y, more);
  2363. });
  2364. return G__2265;
  2365. })()
  2366. ;
  2367. _SLASH_ = function(x,y,var_args){
  2368. var more = var_args;
  2369. switch(arguments.length){
  2370. case  1 :
  2371. return _SLASH___2261.call(this,x);
  2372. case  2 :
  2373. return _SLASH___2262.call(this,x,y);
  2374. default:
  2375. return _SLASH___2263.apply(this,arguments);
  2376. }
  2377. throw('Invalid arity: ' + arguments.length);
  2378. };
  2379. _SLASH_.cljs$lang$maxFixedArity = 2;
  2380. _SLASH_.cljs$lang$applyTo = _SLASH___2263.cljs$lang$applyTo;
  2381. return _SLASH_;
  2382. })()
  2383. ;
  2384. /**
  2385. * Returns non-nil if nums are in monotonically increasing order,
  2386. * otherwise false.
  2387. * @param {...*} var_args
  2388. */
  2389. cljs.core._LT_ = (function() {
  2390. var _LT_ = null;
  2391. var _LT___2267 = (function (x){
  2392. return true;
  2393. });
  2394. var _LT___2268 = (function (x,y){
  2395. return (x < y);
  2396. });
  2397. var _LT___2269 = (function() {
  2398. var G__2271__delegate = function (x,y,more){
  2399. var G__2272,G__2273;G__2272=G__2273=new Object();
  2400. while(G__2272===G__2273){
  2401. G__2272=(function(continue_val){
  2402. if(cljs.core.truth_(_LT_.call(null,x,y)))
  2403. {if(cljs.core.truth_(cljs.core.next.call(null,more)))
  2404. {{
  2405. var G__2274 = y;
  2406. var G__2275 = cljs.core.first.call(null,more);
  2407. var G__2276 = cljs.core.next.call(null,more);
  2408. x = G__2274;
  2409. y = G__2275;
  2410. more = G__2276;
  2411. return continue_val;
  2412. }
  2413. } else
  2414. {return _LT_.call(null,y,cljs.core.first.call(null,more));
  2415. }
  2416. } else
  2417. {return false;
  2418. }
  2419. })(G__2273);}
  2420. return G__2272;
  2421. };
  2422. var G__2271 = function (x,y,var_args){
  2423. var more = null;
  2424. if (goog.isDef(var_args)) {
  2425.   more = cljs.core.array_seq(Array.prototype.slice.call(arguments, 2),0);
  2426. }
  2427. return G__2271__delegate.call(this, x, y, more);
  2428. };
  2429. G__2271.cljs$lang$maxFixedArity = 2;
  2430. G__2271.cljs$lang$applyTo = (function (arglist__2277){
  2431. var x = cljs.core.first(arglist__2277);
  2432. var y = cljs.core.first(cljs.core.next(arglist__2277));
  2433. var more = cljs.core.rest(cljs.core.next(arglist__2277));
  2434. return G__2271__delegate.call(this, x, y, more);
  2435. });
  2436. return G__2271;
  2437. })()
  2438. ;
  2439. _LT_ = function(x,y,var_args){
  2440. var more = var_args;
  2441. switch(arguments.length){
  2442. case  1 :
  2443. return _LT___2267.call(this,x);
  2444. case  2 :
  2445. return _LT___2268.call(this,x,y);
  2446. default:
  2447. return _LT___2269.apply(this,arguments);
  2448. }
  2449. throw('Invalid arity: ' + arguments.length);
  2450. };
  2451. _LT_.cljs$lang$maxFixedArity = 2;
  2452. _LT_.cljs$lang$applyTo = _LT___2269.cljs$lang$applyTo;
  2453. return _LT_;
  2454. })()
  2455. ;
  2456. /**
  2457. * Returns non-nil if nums are in monotonically non-decreasing order,
  2458. * otherwise false.
  2459. * @param {...*} var_args
  2460. */
  2461. cljs.core._LT__EQ_ = (function() {
  2462. var _LT__EQ_ = null;
  2463. var _LT__EQ___2278 = (function (x){
  2464. return true;
  2465. });
  2466. var _LT__EQ___2279 = (function (x,y){
  2467. return (x <= y);
  2468. });
  2469. var _LT__EQ___2280 = (function() {
  2470. var G__2282__delegate = function (x,y,more){
  2471. var G__2283,G__2284;G__2283=G__2284=new Object();
  2472. while(G__2283===G__2284){
  2473. G__2283=(function(continue_val){
  2474. if(cljs.core.truth_(_LT__EQ_.call(null,x,y)))
  2475. {if(cljs.core.truth_(cljs.core.next.call(null,more)))
  2476. {{
  2477. var G__2285 = y;
  2478. var G__2286 = cljs.core.first.call(null,more);
  2479. var G__2287 = cljs.core.next.call(null,more);
  2480. x = G__2285;
  2481. y = G__2286;
  2482. more = G__2287;
  2483. return continue_val;
  2484. }
  2485. } else
  2486. {return _LT__EQ_.call(null,y,cljs.core.first.call(null,more));
  2487. }
  2488. } else
  2489. {return false;
  2490. }
  2491. })(G__2284);}
  2492. return G__2283;
  2493. };
  2494. var G__2282 = function (x,y,var_args){
  2495. var more = null;
  2496. if (goog.isDef(var_args)) {
  2497.   more = cljs.core.array_seq(Array.prototype.slice.call(arguments, 2),0);
  2498. }
  2499. return G__2282__delegate.call(this, x, y, more);
  2500. };
  2501. G__2282.cljs$lang$maxFixedArity = 2;
  2502. G__2282.cljs$lang$applyTo = (function (arglist__2288){
  2503. var x = cljs.core.first(arglist__2288);
  2504. var y = cljs.core.first(cljs.core.next(arglist__2288));
  2505. var more = cljs.core.rest(cljs.core.next(arglist__2288));
  2506. return G__2282__delegate.call(this, x, y, more);
  2507. });
  2508. return G__2282;
  2509. })()
  2510. ;
  2511. _LT__EQ_ = function(x,y,var_args){
  2512. var more = var_args;
  2513. switch(arguments.length){
  2514. case  1 :
  2515. return _LT__EQ___2278.call(this,x);
  2516. case  2 :
  2517. return _LT__EQ___2279.call(this,x,y);
  2518. default:
  2519. return _LT__EQ___2280.apply(this,arguments);
  2520. }
  2521. throw('Invalid arity: ' + arguments.length);
  2522. };
  2523. _LT__EQ_.cljs$lang$maxFixedArity = 2;
  2524. _LT__EQ_.cljs$lang$applyTo = _LT__EQ___2280.cljs$lang$applyTo;
  2525. return _LT__EQ_;
  2526. })()
  2527. ;
  2528. /**
  2529. * Returns non-nil if nums are in monotonically decreasing order,
  2530. * otherwise false.
  2531. * @param {...*} var_args
  2532. */
  2533. cljs.core._GT_ = (function() {
  2534. var _GT_ = null;
  2535. var _GT___2289 = (function (x){
  2536. return true;
  2537. });
  2538. var _GT___2290 = (function (x,y){
  2539. return (x > y);
  2540. });
  2541. var _GT___2291 = (function() {
  2542. var G__2293__delegate = function (x,y,more){
  2543. var G__2294,G__2295;G__2294=G__2295=new Object();
  2544. while(G__2294===G__2295){
  2545. G__2294=(function(continue_val){
  2546. if(cljs.core.truth_(_GT_.call(null,x,y)))
  2547. {if(cljs.core.truth_(cljs.core.next.call(null,more)))
  2548. {{
  2549. var G__2296 = y;
  2550. var G__2297 = cljs.core.first.call(null,more);
  2551. var G__2298 = cljs.core.next.call(null,more);
  2552. x = G__2296;
  2553. y = G__2297;
  2554. more = G__2298;
  2555. return continue_val;
  2556. }
  2557. } else
  2558. {return _GT_.call(null,y,cljs.core.first.call(null,more));
  2559. }
  2560. } else
  2561. {return false;
  2562. }
  2563. })(G__2295);}
  2564. return G__2294;
  2565. };
  2566. var G__2293 = function (x,y,var_args){
  2567. var more = null;
  2568. if (goog.isDef(var_args)) {
  2569.   more = cljs.core.array_seq(Array.prototype.slice.call(arguments, 2),0);
  2570. }
  2571. return G__2293__delegate.call(this, x, y, more);
  2572. };
  2573. G__2293.cljs$lang$maxFixedArity = 2;
  2574. G__2293.cljs$lang$applyTo = (function (arglist__2299){
  2575. var x = cljs.core.first(arglist__2299);
  2576. var y = cljs.core.first(cljs.core.next(arglist__2299));
  2577. var more = cljs.core.rest(cljs.core.next(arglist__2299));
  2578. return G__2293__delegate.call(this, x, y, more);
  2579. });
  2580. return G__2293;
  2581. })()
  2582. ;
  2583. _GT_ = function(x,y,var_args){
  2584. var more = var_args;
  2585. switch(arguments.length){
  2586. case  1 :
  2587. return _GT___2289.call(this,x);
  2588. case  2 :
  2589. return _GT___2290.call(this,x,y);
  2590. default:
  2591. return _GT___2291.apply(this,arguments);
  2592. }
  2593. throw('Invalid arity: ' + arguments.length);
  2594. };
  2595. _GT_.cljs$lang$maxFixedArity = 2;
  2596. _GT_.cljs$lang$applyTo = _GT___2291.cljs$lang$applyTo;
  2597. return _GT_;
  2598. })()
  2599. ;
  2600. /**
  2601. * Returns non-nil if nums are in monotonically non-increasing order,
  2602. * otherwise false.
  2603. * @param {...*} var_args
  2604. */
  2605. cljs.core._GT__EQ_ = (function() {
  2606. var _GT__EQ_ = null;
  2607. var _GT__EQ___2300 = (function (x){
  2608. return true;
  2609. });
  2610. var _GT__EQ___2301 = (function (x,y){
  2611. return (x >= y);
  2612. });
  2613. var _GT__EQ___2302 = (function() {
  2614. var G__2304__delegate = function (x,y,more){
  2615. var G__2305,G__2306;G__2305=G__2306=new Object();
  2616. while(G__2305===G__2306){
  2617. G__2305=(function(continue_val){
  2618. if(cljs.core.truth_(_GT__EQ_.call(null,x,y)))
  2619. {if(cljs.core.truth_(cljs.core.next.call(null,more)))
  2620. {{
  2621. var G__2307 = y;
  2622. var G__2308 = cljs.core.first.call(null,more);
  2623. var G__2309 = cljs.core.next.call(null,more);
  2624. x = G__2307;
  2625. y = G__2308;
  2626. more = G__2309;
  2627. return continue_val;
  2628. }
  2629. } else
  2630. {return _GT__EQ_.call(null,y,cljs.core.first.call(null,more));
  2631. }
  2632. } else
  2633. {return false;
  2634. }
  2635. })(G__2306);}
  2636. return G__2305;
  2637. };
  2638. var G__2304 = function (x,y,var_args){
  2639. var more = null;
  2640. if (goog.isDef(var_args)) {
  2641.   more = cljs.core.array_seq(Array.prototype.slice.call(arguments, 2),0);
  2642. }
  2643. return G__2304__delegate.call(this, x, y, more);
  2644. };
  2645. G__2304.cljs$lang$maxFixedArity = 2;
  2646. G__2304.cljs$lang$applyTo = (function (arglist__2310){
  2647. var x = cljs.core.first(arglist__2310);
  2648. var y = cljs.core.first(cljs.core.next(arglist__2310));
  2649. var more = cljs.core.rest(cljs.core.next(arglist__2310));
  2650. return G__2304__delegate.call(this, x, y, more);
  2651. });
  2652. return G__2304;
  2653. })()
  2654. ;
  2655. _GT__EQ_ = function(x,y,var_args){
  2656. var more = var_args;
  2657. switch(arguments.length){
  2658. case  1 :
  2659. return _GT__EQ___2300.call(this,x);
  2660. case  2 :
  2661. return _GT__EQ___2301.call(this,x,y);
  2662. default:
  2663. return _GT__EQ___2302.apply(this,arguments);
  2664. }
  2665. throw('Invalid arity: ' + arguments.length);
  2666. };
  2667. _GT__EQ_.cljs$lang$maxFixedArity = 2;
  2668. _GT__EQ_.cljs$lang$applyTo = _GT__EQ___2302.cljs$lang$applyTo;
  2669. return _GT__EQ_;
  2670. })()
  2671. ;
  2672. /**
  2673. * Returns a number one less than num.
  2674. */
  2675. cljs.core.dec = (function dec(x){
  2676. return cljs.core._.call(null,x,1);
  2677. });
  2678. /**
  2679. * Returns the greatest of the nums.
  2680. * @param {...*} var_args
  2681. */
  2682. cljs.core.max = (function() {
  2683. var max = null;
  2684. var max__2311 = (function (x){
  2685. return x;
  2686. });
  2687. var max__2312 = (function (x,y){
  2688. return ((x > y) ? x : y);
  2689. });
  2690. var max__2313 = (function() {
  2691. var G__2315__delegate = function (x,y,more){
  2692. return cljs.core.reduce.call(null,max,max.call(null,x,y),more);
  2693. };
  2694. var G__2315 = function (x,y,var_args){
  2695. var more = null;
  2696. if (goog.isDef(var_args)) {
  2697.   more = cljs.core.array_seq(Array.prototype.slice.call(arguments, 2),0);
  2698. }
  2699. return G__2315__delegate.call(this, x, y, more);
  2700. };
  2701. G__2315.cljs$lang$maxFixedArity = 2;
  2702. G__2315.cljs$lang$applyTo = (function (arglist__2316){
  2703. var x = cljs.core.first(arglist__2316);
  2704. var y = cljs.core.first(cljs.core.next(arglist__2316));
  2705. var more = cljs.core.rest(cljs.core.next(arglist__2316));
  2706. return G__2315__delegate.call(this, x, y, more);
  2707. });
  2708. return G__2315;
  2709. })()
  2710. ;
  2711. max = function(x,y,var_args){
  2712. var more = var_args;
  2713. switch(arguments.length){
  2714. case  1 :
  2715. return max__2311.call(this,x);
  2716. case  2 :
  2717. return max__2312.call(this,x,y);
  2718. default:
  2719. return max__2313.apply(this,arguments);
  2720. }
  2721. throw('Invalid arity: ' + arguments.length);
  2722. };
  2723. max.cljs$lang$maxFixedArity = 2;
  2724. max.cljs$lang$applyTo = max__2313.cljs$lang$applyTo;
  2725. return max;
  2726. })()
  2727. ;
  2728. /**
  2729. * Returns the least of the nums.
  2730. * @param {...*} var_args
  2731. */
  2732. cljs.core.min = (function() {
  2733. var min = null;
  2734. var min__2317 = (function (x){
  2735. return x;
  2736. });
  2737. var min__2318 = (function (x,y){
  2738. return ((x < y) ? x : y);
  2739. });
  2740. var min__2319 = (function() {
  2741. var G__2321__delegate = function (x,y,more){
  2742. return cljs.core.reduce.call(null,min,min.call(null,x,y),more);
  2743. };
  2744. var G__2321 = function (x,y,var_args){
  2745. var more = null;
  2746. if (goog.isDef(var_args)) {
  2747.   more = cljs.core.array_seq(Array.prototype.slice.call(arguments, 2),0);
  2748. }
  2749. return G__2321__delegate.call(this, x, y, more);
  2750. };
  2751. G__2321.cljs$lang$maxFixedArity = 2;
  2752. G__2321.cljs$lang$applyTo = (function (arglist__2322){
  2753. var x = cljs.core.first(arglist__2322);
  2754. var y = cljs.core.first(cljs.core.next(arglist__2322));
  2755. var more = cljs.core.rest(cljs.core.next(arglist__2322));
  2756. return G__2321__delegate.call(this, x, y, more);
  2757. });
  2758. return G__2321;
  2759. })()
  2760. ;
  2761. min = function(x,y,var_args){
  2762. var more = var_args;
  2763. switch(arguments.length){
  2764. case  1 :
  2765. return min__2317.call(this,x);
  2766. case  2 :
  2767. return min__2318.call(this,x,y);
  2768. default:
  2769. return min__2319.apply(this,arguments);
  2770. }
  2771. throw('Invalid arity: ' + arguments.length);
  2772. };
  2773. min.cljs$lang$maxFixedArity = 2;
  2774. min.cljs$lang$applyTo = min__2319.cljs$lang$applyTo;
  2775. return min;
  2776. })()
  2777. ;
  2778. cljs.core.fix = (function fix(q){
  2779. if(cljs.core.truth_(cljs.core._GT__EQ_.call(null,q,0)))
  2780. {return Math.floor.call(null,q);
  2781. } else
  2782. {return Math.ceil.call(null,q);
  2783. }
  2784. });
  2785. /**
  2786. * Modulus of num and div. Truncates toward negative infinity.
  2787. */
  2788. cljs.core.mod = (function mod(n,d){
  2789. return (n % d);
  2790. });
  2791. /**
  2792. * quot[ient] of dividing numerator by denominator.
  2793. */
  2794. cljs.core.quot = (function quot(n,d){
  2795. var rem__2323 = cljs.core.mod.call(null,n,d);
  2796.  
  2797. return cljs.core.fix.call(null,((n - rem__2323) / d));
  2798. });
  2799. /**
  2800. * remainder of dividing numerator by denominator.
  2801. */
  2802. cljs.core.rem = (function rem(n,d){
  2803. var q__2324 = cljs.core.quot.call(null,n,d);
  2804.  
  2805. return (n - (d * q__2324));
  2806. });
  2807. /**
  2808. * Returns a random floating point number between 0 (inclusive) and n (default 1) (exclusive).
  2809. */
  2810. cljs.core.rand = (function() {
  2811. var rand = null;
  2812. var rand__2325 = (function (){
  2813. return Math.random.call(null);
  2814. });
  2815. var rand__2326 = (function (n){
  2816. return cljs.core._STAR_.call(null,n,rand.call(null));
  2817. });
  2818. rand = function(n){
  2819. switch(arguments.length){
  2820. case  0 :
  2821. return rand__2325.call(this);
  2822. case  1 :
  2823. return rand__2326.call(this,n);
  2824. }
  2825. throw('Invalid arity: ' + arguments.length);
  2826. };
  2827. return rand;
  2828. })()
  2829. ;
  2830. /**
  2831. * Returns a random integer between 0 (inclusive) and n (exclusive).
  2832. */
  2833. cljs.core.rand_int = (function rand_int(n){
  2834. return cljs.core.fix.call(null,cljs.core.rand.call(null,n));
  2835. });
  2836. /**
  2837. * Bitwise exclusive or
  2838. */
  2839. cljs.core.bit_xor = (function bit_xor(x,y){
  2840. return (x ^ y);
  2841. });
  2842. /**
  2843. * Bitwise and
  2844. */
  2845. cljs.core.bit_and = (function bit_and(x,y){
  2846. return (x & y);
  2847. });
  2848. /**
  2849. * Bitwise or
  2850. */
  2851. cljs.core.bit_or = (function bit_or(x,y){
  2852. return (x | y);
  2853. });
  2854. /**
  2855. * Bitwise and
  2856. */
  2857. cljs.core.bit_and_not = (function bit_and_not(x,y){
  2858. return (x & ~y);
  2859. });
  2860. /**
  2861. * Clear bit at index n
  2862. */
  2863. cljs.core.bit_clear = (function bit_clear(x,n){
  2864. return (x & ~(1 << n));
  2865. });
  2866. /**
  2867. * Flip bit at index n
  2868. */
  2869. cljs.core.bit_flip = (function bit_flip(x,n){
  2870. return (x ^ (1 << n));
  2871. });
  2872. /**
  2873. * Bitwise complement
  2874. */
  2875. cljs.core.bit_not = (function bit_not(x){
  2876. return (~x);
  2877. });
  2878. /**
  2879. * Set bit at index n
  2880. */
  2881. cljs.core.bit_set = (function bit_set(x,n){
  2882. return (x | (1 << n));
  2883. });
  2884. /**
  2885. * Test bit at index n
  2886. */
  2887. cljs.core.bit_test = (function bit_test(x,n){
  2888. return ((x & (1 << n)) != 0);
  2889. });
  2890. /**
  2891. * Bitwise shift left
  2892. */
  2893. cljs.core.bit_shift_left = (function bit_shift_left(x,n){
  2894. return (x << n);
  2895. });
  2896. /**
  2897. * Bitwise shift right
  2898. */
  2899. cljs.core.bit_shift_right = (function bit_shift_right(x,n){
  2900. return (x >> n);
  2901. });
  2902. /**
  2903. * Returns non-nil if nums all have the equivalent
  2904. * value (type-independent), otherwise false
  2905. * @param {...*} var_args
  2906. */
  2907. cljs.core._EQ__EQ_ = (function() {
  2908. var _EQ__EQ_ = null;
  2909. var _EQ__EQ___2328 = (function (x){
  2910. return true;
  2911. });
  2912. var _EQ__EQ___2329 = (function (x,y){
  2913. return cljs.core._equiv.call(null,x,y);
  2914. });
  2915. var _EQ__EQ___2330 = (function() {
  2916. var G__2332__delegate = function (x,y,more){
  2917. var G__2333,G__2334;G__2333=G__2334=new Object();
  2918. while(G__2333===G__2334){
  2919. G__2333=(function(continue_val){
  2920. if(cljs.core.truth_(_EQ__EQ_.call(null,x,y)))
  2921. {if(cljs.core.truth_(cljs.core.next.call(null,more)))
  2922. {{
  2923. var G__2335 = y;
  2924. var G__2336 = cljs.core.first.call(null,more);
  2925. var G__2337 = cljs.core.next.call(null,more);
  2926. x = G__2335;
  2927. y = G__2336;
  2928. more = G__2337;
  2929. return continue_val;
  2930. }
  2931. } else
  2932. {return _EQ__EQ_.call(null,y,cljs.core.first.call(null,more));
  2933. }
  2934. } else
  2935. {return false;
  2936. }
  2937. })(G__2334);}
  2938. return G__2333;
  2939. };
  2940. var G__2332 = function (x,y,var_args){
  2941. var more = null;
  2942. if (goog.isDef(var_args)) {
  2943.   more = cljs.core.array_seq(Array.prototype.slice.call(arguments, 2),0);
  2944. }
  2945. return G__2332__delegate.call(this, x, y, more);
  2946. };
  2947. G__2332.cljs$lang$maxFixedArity = 2;
  2948. G__2332.cljs$lang$applyTo = (function (arglist__2338){
  2949. var x = cljs.core.first(arglist__2338);
  2950. var y = cljs.core.first(cljs.core.next(arglist__2338));
  2951. var more = cljs.core.rest(cljs.core.next(arglist__2338));
  2952. return G__2332__delegate.call(this, x, y, more);
  2953. });
  2954. return G__2332;
  2955. })()
  2956. ;
  2957. _EQ__EQ_ = function(x,y,var_args){
  2958. var more = var_args;
  2959. switch(arguments.length){
  2960. case  1 :
  2961. return _EQ__EQ___2328.call(this,x);
  2962. case  2 :
  2963. return _EQ__EQ___2329.call(this,x,y);
  2964. default:
  2965. return _EQ__EQ___2330.apply(this,arguments);
  2966. }
  2967. throw('Invalid arity: ' + arguments.length);
  2968. };
  2969. _EQ__EQ_.cljs$lang$maxFixedArity = 2;
  2970. _EQ__EQ_.cljs$lang$applyTo = _EQ__EQ___2330.cljs$lang$applyTo;
  2971. return _EQ__EQ_;
  2972. })()
  2973. ;
  2974. /**
  2975. * Returns true if num is greater than zero, else false
  2976. */
  2977. cljs.core.pos_QMARK_ = (function pos_QMARK_(n){
  2978. return cljs.core._LT_.call(null,0,n);
  2979. });
  2980. cljs.core.zero_QMARK_ = (function zero_QMARK_(n){
  2981. return cljs.core._EQ__EQ_.call(null,0,n);
  2982. });
  2983. /**
  2984. * Returns true if num is less than zero, else false
  2985. */
  2986. cljs.core.neg_QMARK_ = (function neg_QMARK_(x){
  2987. return (x < 0);
  2988. });
  2989. /**
  2990. * Returns the nth next of coll, (seq coll) when n is 0.
  2991. */
  2992. cljs.core.nthnext = (function nthnext(coll,n){
  2993. var n__2339 = n;
  2994. var xs__2340 = cljs.core.seq.call(null,coll);
  2995.  
  2996. var G__2342,G__2343;G__2342=G__2343=new Object();
  2997. while(G__2342===G__2343){
  2998. G__2342=(function(continue_val){
  2999. if(cljs.core.truth_((function (){var and__3574__auto____2341 = xs__2340;
  3000.  
  3001. if(cljs.core.truth_(and__3574__auto____2341))
  3002. {return cljs.core.pos_QMARK_.call(null,n__2339);
  3003. } else
  3004. {return and__3574__auto____2341;
  3005. }
  3006. })()))
  3007. {{
  3008. var G__2344 = cljs.core.dec.call(null,n__2339);
  3009. var G__2345 = cljs.core.next.call(null,xs__2340);
  3010. n__2339 = G__2344;
  3011. xs__2340 = G__2345;
  3012. return continue_val;
  3013. }
  3014. } else
  3015. {return xs__2340;
  3016. }
  3017. })(G__2343);}
  3018. return G__2342;
  3019. });
  3020. (cljs.core.IIndexed["_"] = true);
  3021. (cljs.core._nth["_"] = (function() {
  3022. var G__2350 = null;
  3023. var G__2350__2351 = (function (coll,n){
  3024. var temp__3723__auto____2346 = cljs.core.nthnext.call(null,coll,n);
  3025.  
  3026. if(cljs.core.truth_(temp__3723__auto____2346))
  3027. {var xs__2347 = temp__3723__auto____2346;
  3028.  
  3029. return cljs.core.first.call(null,xs__2347);
  3030. } else
  3031. {throw "Index out of bounds";
  3032. }
  3033. });
  3034. var G__2350__2352 = (function (coll,n,not_found){
  3035. var temp__3723__auto____2348 = cljs.core.nthnext.call(null,coll,n);
  3036.  
  3037. if(cljs.core.truth_(temp__3723__auto____2348))
  3038. {var xs__2349 = temp__3723__auto____2348;
  3039.  
  3040. return cljs.core.first.call(null,xs__2349);
  3041. } else
  3042. {return not_found;
  3043. }
  3044. });
  3045. G__2350 = function(coll,n,not_found){
  3046. switch(arguments.length){
  3047. case  2 :
  3048. return G__2350__2351.call(this,coll,n);
  3049. case  3 :
  3050. return G__2350__2352.call(this,coll,n,not_found);
  3051. }
  3052. throw('Invalid arity: ' + arguments.length);
  3053. };
  3054. return G__2350;
  3055. })()
  3056. );
  3057. /**
  3058. * With no args, returns the empty string. With one arg x, returns
  3059. * x.toString().  (str nil) returns the empty string. With more than
  3060. * one arg, returns the concatenation of the str values of the args.
  3061. * @param {...*} var_args
  3062. */
  3063. cljs.core.str = (function() {
  3064. var str = null;
  3065. var str__2354 = (function (){
  3066. return "";
  3067. });
  3068. var str__2355 = (function (x){
  3069. if(cljs.core.truth_(cljs.core.nil_QMARK_.call(null,x)))
  3070. {return "";
  3071. } else
  3072. {return x.toString();
  3073. }
  3074. });
  3075. var str__2356 = (function() {
  3076. var G__2358__delegate = function (x,ys){
  3077. return (function (sb,more){
  3078. var G__2359,G__2360;G__2359=G__2360=new Object();
  3079. while(G__2359===G__2360){
  3080. G__2359=(function(continue_val){
  3081. if(cljs.core.truth_(more))
  3082. {{
  3083. var G__2361 = sb.append(str.call(null,cljs.core.first.call(null,more)));
  3084. var G__2362 = cljs.core.next.call(null,more);
  3085. sb = G__2361;
  3086. more = G__2362;
  3087. return continue_val;
  3088. }
  3089. } else
  3090. {return str.call(null,sb);
  3091. }
  3092. })(G__2360);}
  3093. return G__2359;
  3094. }).call(null,(new goog.string.StringBuffer(str.call(null,x))),ys);
  3095. };
  3096. var G__2358 = function (x,var_args){
  3097. var ys = null;
  3098. if (goog.isDef(var_args)) {
  3099.   ys = cljs.core.array_seq(Array.prototype.slice.call(arguments, 1),0);
  3100. }
  3101. return G__2358__delegate.call(this, x, ys);
  3102. };
  3103. G__2358.cljs$lang$maxFixedArity = 1;
  3104. G__2358.cljs$lang$applyTo = (function (arglist__2363){
  3105. var x = cljs.core.first(arglist__2363);
  3106. var ys = cljs.core.rest(arglist__2363);
  3107. return G__2358__delegate.call(this, x, ys);
  3108. });
  3109. return G__2358;
  3110. })()
  3111. ;
  3112. str = function(x,var_args){
  3113. var ys = var_args;
  3114. switch(arguments.length){
  3115. case  0 :
  3116. return str__2354.call(this);
  3117. case  1 :
  3118. return str__2355.call(this,x);
  3119. default:
  3120. return str__2356.apply(this,arguments);
  3121. }
  3122. throw('Invalid arity: ' + arguments.length);
  3123. };
  3124. str.cljs$lang$maxFixedArity = 1;
  3125. str.cljs$lang$applyTo = str__2356.cljs$lang$applyTo;
  3126. return str;
  3127. })()
  3128. ;
  3129. /**
  3130. * Returns the substring of s beginning at start inclusive, and ending
  3131. * at end (defaults to length of string), exclusive.
  3132. */
  3133. cljs.core.subs = (function() {
  3134. var subs = null;
  3135. var subs__2364 = (function (s,start){
  3136. return s.substring(start);
  3137. });
  3138. var subs__2365 = (function (s,start,end){
  3139. return s.substring(start,end);
  3140. });
  3141. subs = function(s,start,end){
  3142. switch(arguments.length){
  3143. case  2 :
  3144. return subs__2364.call(this,s,start);
  3145. case  3 :
  3146. return subs__2365.call(this,s,start,end);
  3147. }
  3148. throw('Invalid arity: ' + arguments.length);
  3149. };
  3150. return subs;
  3151. })()
  3152. ;
  3153. /**
  3154. * Returns a Symbol with the given namespace and name.
  3155. */
  3156. cljs.core.symbol = (function() {
  3157. var symbol = null;
  3158. var symbol__2367 = (function (name){
  3159. if(cljs.core.truth_(cljs.core.symbol_QMARK_.call(null,name)))
  3160. {return name;
  3161. } else
  3162. {if(cljs.core.truth_(cljs.core.keyword_QMARK_.call(null,name)))
  3163. {return cljs.core.str.call(null,"ï·‘","'",cljs.core.subs.call(null,name,2));
  3164. } else
  3165. {if(cljs.core.truth_("﷐'else"))
  3166. {return cljs.core.str.call(null,"ï·‘","'",name);
  3167. } else
  3168. {return null;
  3169. }
  3170. }
  3171. }
  3172. });
  3173. var symbol__2368 = (function (ns,name){
  3174. return symbol.call(null,cljs.core.str.call(null,ns,"/",name));
  3175. });
  3176. symbol = function(ns,name){
  3177. switch(arguments.length){
  3178. case  1 :
  3179. return symbol__2367.call(this,ns);
  3180. case  2 :
  3181. return symbol__2368.call(this,ns,name);
  3182. }
  3183. throw('Invalid arity: ' + arguments.length);
  3184. };
  3185. return symbol;
  3186. })()
  3187. ;
  3188. /**
  3189. * Returns a Keyword with the given namespace and name.  Do not use :
  3190. * in the keyword strings, it will be added automatically.
  3191. */
  3192. cljs.core.keyword = (function() {
  3193. var keyword = null;
  3194. var keyword__2370 = (function (name){
  3195. if(cljs.core.truth_(cljs.core.keyword_QMARK_.call(null,name)))
  3196. {return name;
  3197. } else
  3198. {if(cljs.core.truth_(cljs.core.symbol_QMARK_.call(null,name)))
  3199. {return cljs.core.str.call(null,"﷐","'",cljs.core.subs.call(null,name,2));
  3200. } else
  3201. {if(cljs.core.truth_("﷐'else"))
  3202. {return cljs.core.str.call(null,"﷐","'",name);
  3203. } else
  3204. {return null;
  3205. }
  3206. }
  3207. }
  3208. });
  3209. var keyword__2371 = (function (ns,name){
  3210. return keyword.call(null,cljs.core.str.call(null,ns,"/",name));
  3211. });
  3212. keyword = function(ns,name){
  3213. switch(arguments.length){
  3214. case  1 :
  3215. return keyword__2370.call(this,ns);
  3216. case  2 :
  3217. return keyword__2371.call(this,ns,name);
  3218. }
  3219. throw('Invalid arity: ' + arguments.length);
  3220. };
  3221. return keyword;
  3222. })()
  3223. ;
  3224. /**
  3225. * Assumes x is sequential. Returns true if x equals y, otherwise
  3226. * returns false.
  3227. */
  3228. cljs.core.equiv_sequential = (function equiv_sequential(x,y){
  3229. return cljs.core.boolean$.call(null,(cljs.core.truth_(cljs.core.sequential_QMARK_.call(null,y))?(function (){var xs__2373 = cljs.core.seq.call(null,x);
  3230. var ys__2374 = cljs.core.seq.call(null,y);
  3231.  
  3232. var G__2375,G__2376;G__2375=G__2376=new Object();
  3233. while(G__2375===G__2376){
  3234. G__2375=(function(continue_val){
  3235. if(cljs.core.truth_(cljs.core.nil_QMARK_.call(null,xs__2373)))
  3236. {return cljs.core.nil_QMARK_.call(null,ys__2374);
  3237. } else
  3238. {if(cljs.core.truth_(cljs.core.nil_QMARK_.call(null,ys__2374)))
  3239. {return false;
  3240. } else
  3241. {if(cljs.core.truth_(cljs.core._EQ_.call(null,cljs.core.first.call(null,xs__2373),cljs.core.first.call(null,ys__2374))))
  3242. {{
  3243. var G__2377 = cljs.core.next.call(null,xs__2373);
  3244. var G__2378 = cljs.core.next.call(null,ys__2374);
  3245. xs__2373 = G__2377;
  3246. ys__2374 = G__2378;
  3247. return continue_val;
  3248. }
  3249. } else
  3250. {if(cljs.core.truth_("﷐'else"))
  3251. {return false;
  3252. } else
  3253. {return null;
  3254. }
  3255. }
  3256. }
  3257. }
  3258. })(G__2376);}
  3259. return G__2375;
  3260. })():null));
  3261. });
  3262. cljs.core.hash_combine = (function hash_combine(seed,hash){
  3263. return cljs.core.bit_xor.call(null,seed,cljs.core._PLUS_.call(null,hash,2654435769,cljs.core.bit_shift_left.call(null,seed,6),cljs.core.bit_shift_right.call(null,seed,2)));
  3264. });
  3265. cljs.core.hash_coll = (function hash_coll(coll){
  3266. return cljs.core.reduce.call(null,(function (p1__2379_SHARP_,p2__2380_SHARP_){
  3267. return cljs.core.hash_combine.call(null,p1__2379_SHARP_,cljs.core.hash.call(null,p2__2380_SHARP_));
  3268. }),cljs.core.hash.call(null,cljs.core.first.call(null,coll)),cljs.core.next.call(null,coll));
  3269. });
  3270.  
  3271. /**
  3272. * @constructor
  3273. */
  3274. cljs.core.List = (function (meta,first,rest,count){
  3275. this.meta = meta;
  3276. this.first = first;
  3277. this.rest = rest;
  3278. this.count = count;
  3279. })
  3280. cljs.core.List.prototype.cljs$core$IEquiv$ = true;
  3281. cljs.core.List.prototype.cljs$core$IEquiv$_equiv = (function (coll,other){
  3282. var this__2381 = this;
  3283. return cljs.core.equiv_sequential.call(null,coll,other);
  3284. });
  3285. cljs.core.List.prototype.cljs$core$ICollection$ = true;
  3286. cljs.core.List.prototype.cljs$core$ICollection$_conj = (function (coll,o){
  3287. var this__2382 = this;
  3288. return (new cljs.core.List(this__2382.meta,o,coll,cljs.core.inc.call(null,this__2382.count)));
  3289. });
  3290. cljs.core.List.prototype.cljs$core$ISeq$ = true;
  3291. cljs.core.List.prototype.cljs$core$ISeq$_first = (function (coll){
  3292. var this__2383 = this;
  3293. return this__2383.first;
  3294. });
  3295. cljs.core.List.prototype.cljs$core$ISeq$_rest = (function (coll){
  3296. var this__2384 = this;
  3297. return this__2384.rest;
  3298. });
  3299. cljs.core.List.prototype.cljs$core$ISeqable$ = true;
  3300. cljs.core.List.prototype.cljs$core$ISeqable$_seq = (function (coll){
  3301. var this__2385 = this;
  3302. return coll;
  3303. });
  3304. cljs.core.List.prototype.cljs$core$IStack$ = true;
  3305. cljs.core.List.prototype.cljs$core$IStack$_peek = (function (coll){
  3306. var this__2386 = this;
  3307. return this__2386.first;
  3308. });
  3309. cljs.core.List.prototype.cljs$core$IStack$_pop = (function (coll){
  3310. var this__2387 = this;
  3311. return cljs.core._rest.call(null,coll);
  3312. });
  3313. cljs.core.List.prototype.cljs$core$IWithMeta$ = true;
  3314. cljs.core.List.prototype.cljs$core$IWithMeta$_with_meta = (function (coll,meta){
  3315. var this__2388 = this;
  3316. return (new cljs.core.List(meta,this__2388.first,this__2388.rest,this__2388.count));
  3317. });
  3318. cljs.core.List.prototype.cljs$core$IEmptyableCollection$ = true;
  3319. cljs.core.List.prototype.cljs$core$IEmptyableCollection$_empty = (function (coll){
  3320. var this__2389 = this;
  3321. return cljs.core.List.EMPTY;
  3322. });
  3323. cljs.core.List.prototype.cljs$core$IMeta$ = true;
  3324. cljs.core.List.prototype.cljs$core$IMeta$_meta = (function (coll){
  3325. var this__2390 = this;
  3326. return this__2390.meta;
  3327. });
  3328. cljs.core.List.prototype.cljs$core$IHash$ = true;
  3329. cljs.core.List.prototype.cljs$core$IHash$_hash = (function (coll){
  3330. var this__2391 = this;
  3331. return cljs.core.hash_coll.call(null,coll);
  3332. });
  3333. cljs.core.List.prototype.cljs$core$ICounted$ = true;
  3334. cljs.core.List.prototype.cljs$core$ICounted$_count = (function (coll){
  3335. var this__2392 = this;
  3336. return this__2392.count;
  3337. });
  3338. cljs.core.List.prototype.cljs$core$ISequential$ = true;
  3339.  
  3340. /**
  3341. * @constructor
  3342. */
  3343. cljs.core.EmptyList = (function (meta){
  3344. this.meta = meta;
  3345. })
  3346. cljs.core.EmptyList.prototype.cljs$core$IEquiv$ = true;
  3347. cljs.core.EmptyList.prototype.cljs$core$IEquiv$_equiv = (function (coll,other){
  3348. var this__2393 = this;
  3349. return cljs.core.equiv_sequential.call(null,coll,other);
  3350. });
  3351. cljs.core.EmptyList.prototype.cljs$core$ICollection$ = true;
  3352. cljs.core.EmptyList.prototype.cljs$core$ICollection$_conj = (function (coll,o){
  3353. var this__2394 = this;
  3354. return (new cljs.core.List(this__2394.meta,o,null,1));
  3355. });
  3356. cljs.core.EmptyList.prototype.cljs$core$ISeq$ = true;
  3357. cljs.core.EmptyList.prototype.cljs$core$ISeq$_first = (function (coll){
  3358. var this__2395 = this;
  3359. return null;
  3360. });
  3361. cljs.core.EmptyList.prototype.cljs$core$ISeq$_rest = (function (coll){
  3362. var this__2396 = this;
  3363. return null;
  3364. });
  3365. cljs.core.EmptyList.prototype.cljs$core$ISeqable$ = true;
  3366. cljs.core.EmptyList.prototype.cljs$core$ISeqable$_seq = (function (coll){
  3367. var this__2397 = this;
  3368. return null;
  3369. });
  3370. cljs.core.EmptyList.prototype.cljs$core$IStack$ = true;
  3371. cljs.core.EmptyList.prototype.cljs$core$IStack$_peek = (function (coll){
  3372. var this__2398 = this;
  3373. return null;
  3374. });
  3375. cljs.core.EmptyList.prototype.cljs$core$IStack$_pop = (function (coll){
  3376. var this__2399 = this;
  3377. return null;
  3378. });
  3379. cljs.core.EmptyList.prototype.cljs$core$IWithMeta$ = true;
  3380. cljs.core.EmptyList.prototype.cljs$core$IWithMeta$_with_meta = (function (coll,meta){
  3381. var this__2400 = this;
  3382. return (new cljs.core.EmptyList(meta));
  3383. });
  3384. cljs.core.EmptyList.prototype.cljs$core$IEmptyableCollection$ = true;
  3385. cljs.core.EmptyList.prototype.cljs$core$IEmptyableCollection$_empty = (function (coll){
  3386. var this__2401 = this;
  3387. return coll;
  3388. });
  3389. cljs.core.EmptyList.prototype.cljs$core$IMeta$ = true;
  3390. cljs.core.EmptyList.prototype.cljs$core$IMeta$_meta = (function (coll){
  3391. var this__2402 = this;
  3392. return this__2402.meta;
  3393. });
  3394. cljs.core.EmptyList.prototype.cljs$core$IHash$ = true;
  3395. cljs.core.EmptyList.prototype.cljs$core$IHash$_hash = (function (coll){
  3396. var this__2403 = this;
  3397. return cljs.core.hash_coll.call(null,coll);
  3398. });
  3399. cljs.core.EmptyList.prototype.cljs$core$ICounted$ = true;
  3400. cljs.core.EmptyList.prototype.cljs$core$ICounted$_count = (function (coll){
  3401. var this__2404 = this;
  3402. return 0;
  3403. });
  3404. cljs.core.EmptyList.prototype.cljs$core$ISequential$ = true;
  3405. cljs.core.List.EMPTY = (new cljs.core.EmptyList(null));
  3406. /**
  3407. * Returns a seq of the items in coll in reverse order. Not lazy.
  3408. */
  3409. cljs.core.reverse = (function reverse(coll){
  3410. return cljs.core.reduce.call(null,cljs.core.conj,cljs.core.List.EMPTY,coll);
  3411. });
  3412. /**
  3413. * @param {...*} var_args
  3414. */
  3415. cljs.core.list = (function() {
  3416. var list__delegate = function (items){
  3417. return cljs.core.reduce.call(null,cljs.core.conj,cljs.core.List.EMPTY,cljs.core.reverse.call(null,items));
  3418. };
  3419. var list = function (var_args){
  3420. var items = null;
  3421. if (goog.isDef(var_args)) {
  3422.   items = cljs.core.array_seq(Array.prototype.slice.call(arguments, 0),0);
  3423. }
  3424. return list__delegate.call(this, items);
  3425. };
  3426. list.cljs$lang$maxFixedArity = 0;
  3427. list.cljs$lang$applyTo = (function (arglist__2405){
  3428. var items = cljs.core.seq( arglist__2405 );;
  3429. return list__delegate.call(this, items);
  3430. });
  3431. return list;
  3432. })()
  3433. ;
  3434.  
  3435. /**
  3436. * @constructor
  3437. */
  3438. cljs.core.Cons = (function (meta,first,rest){
  3439. this.meta = meta;
  3440. this.first = first;
  3441. this.rest = rest;
  3442. })
  3443. cljs.core.Cons.prototype.cljs$core$ISeqable$ = true;
  3444. cljs.core.Cons.prototype.cljs$core$ISeqable$_seq = (function (coll){
  3445. var this__2406 = this;
  3446. return coll;
  3447. });
  3448. cljs.core.Cons.prototype.cljs$core$IHash$ = true;
  3449. cljs.core.Cons.prototype.cljs$core$IHash$_hash = (function (coll){
  3450. var this__2407 = this;
  3451. return cljs.core.hash_coll.call(null,coll);
  3452. });
  3453. cljs.core.Cons.prototype.cljs$core$IEquiv$ = true;
  3454. cljs.core.Cons.prototype.cljs$core$IEquiv$_equiv = (function (coll,other){
  3455. var this__2408 = this;
  3456. return cljs.core.equiv_sequential.call(null,coll,other);
  3457. });
  3458. cljs.core.Cons.prototype.cljs$core$ISequential$ = true;
  3459. cljs.core.Cons.prototype.cljs$core$IEmptyableCollection$ = true;
  3460. cljs.core.Cons.prototype.cljs$core$IEmptyableCollection$_empty = (function (coll){
  3461. var this__2409 = this;
  3462. return cljs.core.with_meta.call(null,cljs.core.List.EMPTY,this__2409.meta);
  3463. });
  3464. cljs.core.Cons.prototype.cljs$core$ICollection$ = true;
  3465. cljs.core.Cons.prototype.cljs$core$ICollection$_conj = (function (coll,o){
  3466. var this__2410 = this;
  3467. return (new cljs.core.Cons(null,o,coll));
  3468. });
  3469. cljs.core.Cons.prototype.cljs$core$ISeq$ = true;
  3470. cljs.core.Cons.prototype.cljs$core$ISeq$_first = (function (coll){
  3471. var this__2411 = this;
  3472. return this__2411.first;
  3473. });
  3474. cljs.core.Cons.prototype.cljs$core$ISeq$_rest = (function (coll){
  3475. var this__2412 = this;
  3476. if(cljs.core.truth_(cljs.core.nil_QMARK_.call(null,this__2412.rest)))
  3477. {return cljs.core.List.EMPTY;
  3478. } else
  3479. {return this__2412.rest;
  3480. }
  3481. });
  3482. cljs.core.Cons.prototype.cljs$core$IMeta$ = true;
  3483. cljs.core.Cons.prototype.cljs$core$IMeta$_meta = (function (coll){
  3484. var this__2413 = this;
  3485. return this__2413.meta;
  3486. });
  3487. cljs.core.Cons.prototype.cljs$core$IWithMeta$ = true;
  3488. cljs.core.Cons.prototype.cljs$core$IWithMeta$_with_meta = (function (coll,meta){
  3489. var this__2414 = this;
  3490. return (new cljs.core.Cons(meta,this__2414.first,this__2414.rest));
  3491. });
  3492. /**
  3493. * Returns a new seq where x is the first element and seq is the rest.
  3494. */
  3495. cljs.core.cons = (function cons(x,seq){
  3496. return (new cljs.core.Cons(null,x,seq));
  3497. });
  3498. (cljs.core.IReduce["string"] = true);
  3499. (cljs.core._reduce["string"] = (function() {
  3500. var G__2415 = null;
  3501. var G__2415__2416 = (function (string,f){
  3502. return cljs.core.ci_reduce.call(null,string,f);
  3503. });
  3504. var G__2415__2417 = (function (string,f,start){
  3505. return cljs.core.ci_reduce.call(null,string,f,start);
  3506. });
  3507. G__2415 = function(string,f,start){
  3508. switch(arguments.length){
  3509. case  2 :
  3510. return G__2415__2416.call(this,string,f);
  3511. case  3 :
  3512. return G__2415__2417.call(this,string,f,start);
  3513. }
  3514. throw('Invalid arity: ' + arguments.length);
  3515. };
  3516. return G__2415;
  3517. })()
  3518. );
  3519. (cljs.core.ILookup["string"] = true);
  3520. (cljs.core._lookup["string"] = (function() {
  3521. var G__2419 = null;
  3522. var G__2419__2420 = (function (string,k){
  3523. return cljs.core._nth.call(null,string,k);
  3524. });
  3525. var G__2419__2421 = (function (string,k,not_found){
  3526. return cljs.core._nth.call(null,string,k,not_found);
  3527. });
  3528. G__2419 = function(string,k,not_found){
  3529. switch(arguments.length){
  3530. case  2 :
  3531. return G__2419__2420.call(this,string,k);
  3532. case  3 :
  3533. return G__2419__2421.call(this,string,k,not_found);
  3534. }
  3535. throw('Invalid arity: ' + arguments.length);
  3536. };
  3537. return G__2419;
  3538. })()
  3539. );
  3540. (cljs.core.IIndexed["string"] = true);
  3541. (cljs.core._nth["string"] = (function() {
  3542. var G__2423 = null;
  3543. var G__2423__2424 = (function (string,n){
  3544. if(cljs.core.truth_(cljs.core._LT_.call(null,n,cljs.core._count.call(null,string))))
  3545. {return string.charAt(n);
  3546. } else
  3547. {return null;
  3548. }
  3549. });
  3550. var G__2423__2425 = (function (string,n,not_found){
  3551. if(cljs.core.truth_(cljs.core._LT_.call(null,n,cljs.core._count.call(null,string))))
  3552. {return string.charAt(n);
  3553. } else
  3554. {return not_found;
  3555. }
  3556. });
  3557. G__2423 = function(string,n,not_found){
  3558. switch(arguments.length){
  3559. case  2 :
  3560. return G__2423__2424.call(this,string,n);
  3561. case  3 :
  3562. return G__2423__2425.call(this,string,n,not_found);
  3563. }
  3564. throw('Invalid arity: ' + arguments.length);
  3565. };
  3566. return G__2423;
  3567. })()
  3568. );
  3569. (cljs.core.ICounted["string"] = true);
  3570. (cljs.core._count["string"] = (function (s){
  3571. return s.length;
  3572. }));
  3573. (cljs.core.ISeqable["string"] = true);
  3574. (cljs.core._seq["string"] = (function (string){
  3575. return cljs.core.prim_seq.call(null,string,0);
  3576. }));
  3577. (cljs.core.IHash["string"] = true);
  3578. (cljs.core._hash["string"] = (function (o){
  3579. return goog.string.hashCode.call(null,o);
  3580. }));
  3581. goog.global['String']['prototype']['call'] = (function() {
  3582. var G__2427 = null;
  3583. var G__2427__2428 = (function (_,coll){
  3584. return cljs.core.get.call(null,coll,this.toString());
  3585. });
  3586. var G__2427__2429 = (function (_,coll,not_found){
  3587. return cljs.core.get.call(null,coll,this.toString(),not_found);
  3588. });
  3589. G__2427 = function(_,coll,not_found){
  3590. switch(arguments.length){
  3591. case  2 :
  3592. return G__2427__2428.call(this,_,coll);
  3593. case  3 :
  3594. return G__2427__2429.call(this,_,coll,not_found);
  3595. }
  3596. throw('Invalid arity: ' + arguments.length);
  3597. };
  3598. return G__2427;
  3599. })()
  3600. ;
  3601. goog.global['String']['prototype']['apply'] = (function (_,args){
  3602. if(cljs.core.truth_(cljs.core._LT_.call(null,cljs.core.count.call(null,args),2)))
  3603. {return this.call(null,(args[0]));
  3604. } else
  3605. {return this.call(null,(args[0]),(args[1]));
  3606. }
  3607. });
  3608. cljs.core.lazy_seq_value = (function lazy_seq_value(lazy_seq){
  3609. var x__2431 = lazy_seq.x;
  3610.  
  3611. if(cljs.core.truth_(lazy_seq.realized))
  3612. {return x__2431;
  3613. } else
  3614. {lazy_seq.x = x__2431.call(null);
  3615. lazy_seq.realized = true;
  3616. return lazy_seq.x;
  3617. }
  3618. });
  3619.  
  3620. /**
  3621. * @constructor
  3622. */
  3623. cljs.core.LazySeq = (function (meta,realized,x){
  3624. this.meta = meta;
  3625. this.realized = realized;
  3626. this.x = x;
  3627. })
  3628. cljs.core.LazySeq.prototype.cljs$core$ISeqable$ = true;
  3629. cljs.core.LazySeq.prototype.cljs$core$ISeqable$_seq = (function (coll){
  3630. var this__2432 = this;
  3631. return cljs.core.seq.call(null,cljs.core.lazy_seq_value.call(null,coll));
  3632. });
  3633. cljs.core.LazySeq.prototype.cljs$core$IHash$ = true;
  3634. cljs.core.LazySeq.prototype.cljs$core$IHash$_hash = (function (coll){
  3635. var this__2433 = this;
  3636. return cljs.core.hash_coll.call(null,coll);
  3637. });
  3638. cljs.core.LazySeq.prototype.cljs$core$IEquiv$ = true;
  3639. cljs.core.LazySeq.prototype.cljs$core$IEquiv$_equiv = (function (coll,other){
  3640. var this__2434 = this;
  3641. return cljs.core.equiv_sequential.call(null,coll,other);
  3642. });
  3643. cljs.core.LazySeq.prototype.cljs$core$ISequential$ = true;
  3644. cljs.core.LazySeq.prototype.cljs$core$IEmptyableCollection$ = true;
  3645. cljs.core.LazySeq.prototype.cljs$core$IEmptyableCollection$_empty = (function (coll){
  3646. var this__2435 = this;
  3647. return cljs.core.with_meta.call(null,cljs.core.List.EMPTY,this__2435.meta);
  3648. });
  3649. cljs.core.LazySeq.prototype.cljs$core$ICollection$ = true;
  3650. cljs.core.LazySeq.prototype.cljs$core$ICollection$_conj = (function (coll,o){
  3651. var this__2436 = this;
  3652. return cljs.core.cons.call(null,o,coll);
  3653. });
  3654. cljs.core.LazySeq.prototype.cljs$core$ISeq$ = true;
  3655. cljs.core.LazySeq.prototype.cljs$core$ISeq$_first = (function (coll){
  3656. var this__2437 = this;
  3657. return cljs.core.first.call(null,cljs.core.lazy_seq_value.call(null,coll));
  3658. });
  3659. cljs.core.LazySeq.prototype.cljs$core$ISeq$_rest = (function (coll){
  3660. var this__2438 = this;
  3661. return cljs.core.rest.call(null,cljs.core.lazy_seq_value.call(null,coll));
  3662. });
  3663. cljs.core.LazySeq.prototype.cljs$core$IMeta$ = true;
  3664. cljs.core.LazySeq.prototype.cljs$core$IMeta$_meta = (function (coll){
  3665. var this__2439 = this;
  3666. return this__2439.meta;
  3667. });
  3668. cljs.core.LazySeq.prototype.cljs$core$IWithMeta$ = true;
  3669. cljs.core.LazySeq.prototype.cljs$core$IWithMeta$_with_meta = (function (coll,meta){
  3670. var this__2440 = this;
  3671. return (new cljs.core.LazySeq(meta,this__2440.realized,this__2440.x));
  3672. });
  3673. /**
  3674. * Naive impl of to-array as a start.
  3675. */
  3676. cljs.core.to_array = (function to_array(s){
  3677. var ary__2441 = cljs.core.array.call(null);
  3678.  
  3679. var s__2442 = s;
  3680.  
  3681. var G__2443,G__2444;G__2443=G__2444=new Object();
  3682. while(G__2443===G__2444){
  3683. G__2443=(function(continue_val){
  3684. if(cljs.core.truth_(cljs.core.seq.call(null,s__2442)))
  3685. {ary__2441.push(cljs.core.first.call(null,s__2442));
  3686. {
  3687. var G__2445 = cljs.core.next.call(null,s__2442);
  3688. s__2442 = G__2445;
  3689. return continue_val;
  3690. }
  3691. } else
  3692. {return ary__2441;
  3693. }
  3694. })(G__2444);}
  3695. return G__2443;
  3696. });
  3697. cljs.core.bounded_count = (function bounded_count(s,n){
  3698. var s__2446 = s;
  3699. var i__2447 = n;
  3700. var sum__2448 = 0;
  3701.  
  3702. var G__2450,G__2451;G__2450=G__2451=new Object();
  3703. while(G__2450===G__2451){
  3704. G__2450=(function(continue_val){
  3705. if(cljs.core.truth_((function (){var and__3574__auto____2449 = cljs.core.pos_QMARK_.call(null,i__2447);
  3706.  
  3707. if(cljs.core.truth_(and__3574__auto____2449))
  3708. {return cljs.core.seq.call(null,s__2446);
  3709. } else
  3710. {return and__3574__auto____2449;
  3711. }
  3712. })()))
  3713. {{
  3714. var G__2452 = cljs.core.next.call(null,s__2446);
  3715. var G__2453 = cljs.core.dec.call(null,i__2447);
  3716. var G__2454 = cljs.core.inc.call(null,sum__2448);
  3717. s__2446 = G__2452;
  3718. i__2447 = G__2453;
  3719. sum__2448 = G__2454;
  3720. return continue_val;
  3721. }
  3722. } else
  3723. {return sum__2448;
  3724. }
  3725. })(G__2451);}
  3726. return G__2450;
  3727. });
  3728. cljs.core.spread = (function spread(arglist){
  3729. if(cljs.core.truth_(cljs.core.nil_QMARK_.call(null,arglist)))
  3730. {return null;
  3731. } else
  3732. {if(cljs.core.truth_(cljs.core.nil_QMARK_.call(null,cljs.core.next.call(null,arglist))))
  3733. {return cljs.core.seq.call(null,cljs.core.first.call(null,arglist));
  3734. } else
  3735. {if(cljs.core.truth_("﷐'else"))
  3736. {return cljs.core.cons.call(null,cljs.core.first.call(null,arglist),spread.call(null,cljs.core.next.call(null,arglist)));
  3737. } else
  3738. {return null;
  3739. }
  3740. }
  3741. }
  3742. });
  3743. /**
  3744. * Returns a lazy seq representing the concatenation of the elements in the supplied colls.
  3745. * @param {...*} var_args
  3746. */
  3747. cljs.core.concat = (function() {
  3748. var concat = null;
  3749. var concat__2458 = (function (){
  3750. return (new cljs.core.LazySeq(null,false,(function (){
  3751. return null;
  3752. })));
  3753. });
  3754. var concat__2459 = (function (x){
  3755. return (new cljs.core.LazySeq(null,false,(function (){
  3756. return x;
  3757. })));
  3758. });
  3759. var concat__2460 = (function (x,y){
  3760. return (new cljs.core.LazySeq(null,false,(function (){
  3761. var s__2455 = cljs.core.seq.call(null,x);
  3762.  
  3763. if(cljs.core.truth_(s__2455))
  3764. {return cljs.core.cons.call(null,cljs.core.first.call(null,s__2455),concat.call(null,cljs.core.rest.call(null,s__2455),y));
  3765. } else
  3766. {return y;
  3767. }
  3768. })));
  3769. });
  3770. var concat__2461 = (function() {
  3771. var G__2463__delegate = function (x,y,zs){
  3772. var cat__2457 = (function cat(xys,zs){
  3773. return (new cljs.core.LazySeq(null,false,(function (){
  3774. var xys__2456 = cljs.core.seq.call(null,xys);
  3775.  
  3776. if(cljs.core.truth_(xys__2456))
  3777. {return cljs.core.cons.call(null,cljs.core.first.call(null,xys__2456),cat.call(null,cljs.core.rest.call(null,xys__2456),zs));
  3778. } else
  3779. {if(cljs.core.truth_(zs))
  3780. {return cat.call(null,cljs.core.first.call(null,zs),cljs.core.next.call(null,zs));
  3781. } else
  3782. {return null;
  3783. }
  3784. }
  3785. })));
  3786. });
  3787.  
  3788. return cat__2457.call(null,concat.call(null,x,y),zs);
  3789. };
  3790. var G__2463 = function (x,y,var_args){
  3791. var zs = null;
  3792. if (goog.isDef(var_args)) {
  3793.   zs = cljs.core.array_seq(Array.prototype.slice.call(arguments, 2),0);
  3794. }
  3795. return G__2463__delegate.call(this, x, y, zs);
  3796. };
  3797. G__2463.cljs$lang$maxFixedArity = 2;
  3798. G__2463.cljs$lang$applyTo = (function (arglist__2464){
  3799. var x = cljs.core.first(arglist__2464);
  3800. var y = cljs.core.first(cljs.core.next(arglist__2464));
  3801. var zs = cljs.core.rest(cljs.core.next(arglist__2464));
  3802. return G__2463__delegate.call(this, x, y, zs);
  3803. });
  3804. return G__2463;
  3805. })()
  3806. ;
  3807. concat = function(x,y,var_args){
  3808. var zs = var_args;
  3809. switch(arguments.length){
  3810. case  0 :
  3811. return concat__2458.call(this);
  3812. case  1 :
  3813. return concat__2459.call(this,x);
  3814. case  2 :
  3815. return concat__2460.call(this,x,y);
  3816. default:
  3817. return concat__2461.apply(this,arguments);
  3818. }
  3819. throw('Invalid arity: ' + arguments.length);
  3820. };
  3821. concat.cljs$lang$maxFixedArity = 2;
  3822. concat.cljs$lang$applyTo = concat__2461.cljs$lang$applyTo;
  3823. return concat;
  3824. })()
  3825. ;
  3826. /**
  3827. * Creates a new list containing the items prepended to the rest, the
  3828. * last of which will be treated as a sequence.
  3829. * @param {...*} var_args
  3830. */
  3831. cljs.core.list_STAR_ = (function() {
  3832. var list_STAR_ = null;
  3833. var list_STAR___2465 = (function (args){
  3834. return cljs.core.seq.call(null,args);
  3835. });
  3836. var list_STAR___2466 = (function (a,args){
  3837. return cljs.core.cons.call(null,a,args);
  3838. });
  3839. var list_STAR___2467 = (function (a,b,args){
  3840. return cljs.core.cons.call(null,a,cljs.core.cons.call(null,b,args));
  3841. });
  3842. var list_STAR___2468 = (function (a,b,c,args){
  3843. return cljs.core.cons.call(null,a,cljs.core.cons.call(null,b,cljs.core.cons.call(null,c,args)));
  3844. });
  3845. var list_STAR___2469 = (function() {
  3846. var G__2471__delegate = function (a,b,c,d,more){
  3847. return cljs.core.cons.call(null,a,cljs.core.cons.call(null,b,cljs.core.cons.call(null,c,cljs.core.cons.call(null,d,cljs.core.spread.call(null,more)))));
  3848. };
  3849. var G__2471 = function (a,b,c,d,var_args){
  3850. var more = null;
  3851. if (goog.isDef(var_args)) {
  3852.   more = cljs.core.array_seq(Array.prototype.slice.call(arguments, 4),0);
  3853. }
  3854. return G__2471__delegate.call(this, a, b, c, d, more);
  3855. };
  3856. G__2471.cljs$lang$maxFixedArity = 4;
  3857. G__2471.cljs$lang$applyTo = (function (arglist__2472){
  3858. var a = cljs.core.first(arglist__2472);
  3859. var b = cljs.core.first(cljs.core.next(arglist__2472));
  3860. var c = cljs.core.first(cljs.core.next(cljs.core.next(arglist__2472)));
  3861. var d = cljs.core.first(cljs.core.next(cljs.core.next(cljs.core.next(arglist__2472))));
  3862. var more = cljs.core.rest(cljs.core.next(cljs.core.next(cljs.core.next(arglist__2472))));
  3863. return G__2471__delegate.call(this, a, b, c, d, more);
  3864. });
  3865. return G__2471;
  3866. })()
  3867. ;
  3868. list_STAR_ = function(a,b,c,d,var_args){
  3869. var more = var_args;
  3870. switch(arguments.length){
  3871. case  1 :
  3872. return list_STAR___2465.call(this,a);
  3873. case  2 :
  3874. return list_STAR___2466.call(this,a,b);
  3875. case  3 :
  3876. return list_STAR___2467.call(this,a,b,c);
  3877. case  4 :
  3878. return list_STAR___2468.call(this,a,b,c,d);
  3879. default:
  3880. return list_STAR___2469.apply(this,arguments);
  3881. }
  3882. throw('Invalid arity: ' + arguments.length);
  3883. };
  3884. list_STAR_.cljs$lang$maxFixedArity = 4;
  3885. list_STAR_.cljs$lang$applyTo = list_STAR___2469.cljs$lang$applyTo;
  3886. return list_STAR_;
  3887. })()
  3888. ;
  3889. /**
  3890. * Applies fn f to the argument list formed by prepending intervening arguments to args.
  3891. * First cut.  Not lazy.  Needs to use emitted toApply.
  3892. * @param {...*} var_args
  3893. */
  3894. cljs.core.apply = (function() {
  3895. var apply = null;
  3896. var apply__2482 = (function (f,args){
  3897. var fixed_arity__2473 = f.cljs$lang$maxFixedArity;
  3898.  
  3899. if(cljs.core.truth_(f.cljs$lang$applyTo))
  3900. {if(cljs.core.truth_(cljs.core._LT__EQ_.call(null,cljs.core.bounded_count.call(null,args,cljs.core.inc.call(null,fixed_arity__2473)),fixed_arity__2473)))
  3901. {return f.apply(f,cljs.core.to_array.call(null,args));
  3902. } else
  3903. {return f.cljs$lang$applyTo(args);
  3904. }
  3905. } else
  3906. {return f.apply(f,cljs.core.to_array.call(null,args));
  3907. }
  3908. });
  3909. var apply__2483 = (function (f,x,args){
  3910. var arglist__2474 = cljs.core.list_STAR_.call(null,x,args);
  3911. var fixed_arity__2475 = f.cljs$lang$maxFixedArity;
  3912.  
  3913. if(cljs.core.truth_(f.cljs$lang$applyTo))
  3914. {if(cljs.core.truth_(cljs.core._LT__EQ_.call(null,cljs.core.bounded_count.call(null,arglist__2474,fixed_arity__2475),fixed_arity__2475)))
  3915. {return f.apply(f,cljs.core.to_array.call(null,arglist__2474));
  3916. } else
  3917. {return f.cljs$lang$applyTo(arglist__2474);
  3918. }
  3919. } else
  3920. {return f.apply(f,cljs.core.to_array.call(null,arglist__2474));
  3921. }
  3922. });
  3923. var apply__2484 = (function (f,x,y,args){
  3924. var arglist__2476 = cljs.core.list_STAR_.call(null,x,y,args);
  3925. var fixed_arity__2477 = f.cljs$lang$maxFixedArity;
  3926.  
  3927. if(cljs.core.truth_(f.cljs$lang$applyTo))
  3928. {if(cljs.core.truth_(cljs.core._LT__EQ_.call(null,cljs.core.bounded_count.call(null,arglist__2476,fixed_arity__2477),fixed_arity__2477)))
  3929. {return f.apply(f,cljs.core.to_array.call(null,arglist__2476));
  3930. } else
  3931. {return f.cljs$lang$applyTo(arglist__2476);
  3932. }
  3933. } else
  3934. {return f.apply(f,cljs.core.to_array.call(null,arglist__2476));
  3935. }
  3936. });
  3937. var apply__2485 = (function (f,x,y,z,args){
  3938. var arglist__2478 = cljs.core.list_STAR_.call(null,x,y,z,args);
  3939. var fixed_arity__2479 = f.cljs$lang$maxFixedArity;
  3940.  
  3941. if(cljs.core.truth_(f.cljs$lang$applyTo))
  3942. {if(cljs.core.truth_(cljs.core._LT__EQ_.call(null,cljs.core.bounded_count.call(null,arglist__2478,fixed_arity__2479),fixed_arity__2479)))
  3943. {return f.apply(f,cljs.core.to_array.call(null,arglist__2478));
  3944. } else
  3945. {return f.cljs$lang$applyTo(arglist__2478);
  3946. }
  3947. } else
  3948. {return f.apply(f,cljs.core.to_array.call(null,arglist__2478));
  3949. }
  3950. });
  3951. var apply__2486 = (function() {
  3952. var G__2488__delegate = function (f,a,b,c,d,args){
  3953. var arglist__2480 = cljs.core.cons.call(null,a,cljs.core.cons.call(null,b,cljs.core.cons.call(null,c,cljs.core.cons.call(null,d,cljs.core.spread.call(null,args)))));
  3954. var fixed_arity__2481 = f.cljs$lang$maxFixedArity;
  3955.  
  3956. if(cljs.core.truth_(f.cljs$lang$applyTo))
  3957. {if(cljs.core.truth_(cljs.core._LT__EQ_.call(null,cljs.core.bounded_count.call(null,arglist__2480,fixed_arity__2481),fixed_arity__2481)))
  3958. {return f.apply(f,cljs.core.to_array.call(null,arglist__2480));
  3959. } else
  3960. {return f.cljs$lang$applyTo(arglist__2480);
  3961. }
  3962. } else
  3963. {return f.apply(f,cljs.core.to_array.call(null,arglist__2480));
  3964. }
  3965. };
  3966. var G__2488 = function (f,a,b,c,d,var_args){
  3967. var args = null;
  3968. if (goog.isDef(var_args)) {
  3969.   args = cljs.core.array_seq(Array.prototype.slice.call(arguments, 5),0);
  3970. }
  3971. return G__2488__delegate.call(this, f, a, b, c, d, args);
  3972. };
  3973. G__2488.cljs$lang$maxFixedArity = 5;
  3974. G__2488.cljs$lang$applyTo = (function (arglist__2489){
  3975. var f = cljs.core.first(arglist__2489);
  3976. var a = cljs.core.first(cljs.core.next(arglist__2489));
  3977. var b = cljs.core.first(cljs.core.next(cljs.core.next(arglist__2489)));
  3978. var c = cljs.core.first(cljs.core.next(cljs.core.next(cljs.core.next(arglist__2489))));
  3979. var d = cljs.core.first(cljs.core.next(cljs.core.next(cljs.core.next(cljs.core.next(arglist__2489)))));
  3980. var args = cljs.core.rest(cljs.core.next(cljs.core.next(cljs.core.next(cljs.core.next(arglist__2489)))));
  3981. return G__2488__delegate.call(this, f, a, b, c, d, args);
  3982. });
  3983. return G__2488;
  3984. })()
  3985. ;
  3986. apply = function(f,a,b,c,d,var_args){
  3987. var args = var_args;
  3988. switch(arguments.length){
  3989. case  2 :
  3990. return apply__2482.call(this,f,a);
  3991. case  3 :
  3992. return apply__2483.call(this,f,a,b);
  3993. case  4 :
  3994. return apply__2484.call(this,f,a,b,c);
  3995. case  5 :
  3996. return apply__2485.call(this,f,a,b,c,d);
  3997. default:
  3998. return apply__2486.apply(this,arguments);
  3999. }
  4000. throw('Invalid arity: ' + arguments.length);
  4001. };
  4002. apply.cljs$lang$maxFixedArity = 5;
  4003. apply.cljs$lang$applyTo = apply__2486.cljs$lang$applyTo;
  4004. return apply;
  4005. })()
  4006. ;
  4007. /**
  4008. * Returns an object of the same type and value as obj, with
  4009. * (apply f (meta obj) args) as its metadata.
  4010. * @param {...*} var_args
  4011. */
  4012. cljs.core.vary_meta = (function() {
  4013. var vary_meta__delegate = function (obj,f,args){
  4014. return cljs.core.with_meta.call(null,obj,cljs.core.apply.call(null,f,cljs.core.meta.call(null,obj),args));
  4015. };
  4016. var vary_meta = function (obj,f,var_args){
  4017. var args = null;
  4018. if (goog.isDef(var_args)) {
  4019.   args = cljs.core.array_seq(Array.prototype.slice.call(arguments, 2),0);
  4020. }
  4021. return vary_meta__delegate.call(this, obj, f, args);
  4022. };
  4023. vary_meta.cljs$lang$maxFixedArity = 2;
  4024. vary_meta.cljs$lang$applyTo = (function (arglist__2490){
  4025. var obj = cljs.core.first(arglist__2490);
  4026. var f = cljs.core.first(cljs.core.next(arglist__2490));
  4027. var args = cljs.core.rest(cljs.core.next(arglist__2490));
  4028. return vary_meta__delegate.call(this, obj, f, args);
  4029. });
  4030. return vary_meta;
  4031. })()
  4032. ;
  4033. /**
  4034. * Same as (not (= obj1 obj2))
  4035. * @param {...*} var_args
  4036. */
  4037. cljs.core.not_EQ_ = (function() {
  4038. var not_EQ_ = null;
  4039. var not_EQ___2491 = (function (x){
  4040. return false;
  4041. });
  4042. var not_EQ___2492 = (function (x,y){
  4043. return cljs.core.not.call(null,cljs.core._EQ_.call(null,x,y));
  4044. });
  4045. var not_EQ___2493 = (function() {
  4046. var G__2495__delegate = function (x,y,more){
  4047. return cljs.core.not.call(null,cljs.core.apply.call(null,cljs.core._EQ_,x,y,more));
  4048. };
  4049. var G__2495 = function (x,y,var_args){
  4050. var more = null;
  4051. if (goog.isDef(var_args)) {
  4052.   more = cljs.core.array_seq(Array.prototype.slice.call(arguments, 2),0);
  4053. }
  4054. return G__2495__delegate.call(this, x, y, more);
  4055. };
  4056. G__2495.cljs$lang$maxFixedArity = 2;
  4057. G__2495.cljs$lang$applyTo = (function (arglist__2496){
  4058. var x = cljs.core.first(arglist__2496);
  4059. var y = cljs.core.first(cljs.core.next(arglist__2496));
  4060. var more = cljs.core.rest(cljs.core.next(arglist__2496));
  4061. return G__2495__delegate.call(this, x, y, more);
  4062. });
  4063. return G__2495;
  4064. })()
  4065. ;
  4066. not_EQ_ = function(x,y,var_args){
  4067. var more = var_args;
  4068. switch(arguments.length){
  4069. case  1 :
  4070. return not_EQ___2491.call(this,x);
  4071. case  2 :
  4072. return not_EQ___2492.call(this,x,y);
  4073. default:
  4074. return not_EQ___2493.apply(this,arguments);
  4075. }
  4076. throw('Invalid arity: ' + arguments.length);
  4077. };
  4078. not_EQ_.cljs$lang$maxFixedArity = 2;
  4079. not_EQ_.cljs$lang$applyTo = not_EQ___2493.cljs$lang$applyTo;
  4080. return not_EQ_;
  4081. })()
  4082. ;
  4083. /**
  4084. * If coll is empty, returns nil, else coll
  4085. */
  4086. cljs.core.not_empty = (function not_empty(coll){
  4087. if(cljs.core.truth_(cljs.core.seq.call(null,coll)))
  4088. {return coll;
  4089. } else
  4090. {return null;
  4091. }
  4092. });
  4093. /**
  4094. * Returns true if (pred x) is logical true for every x in coll, else
  4095. * false.
  4096. */
  4097. cljs.core.every_QMARK_ = (function every_QMARK_(pred,coll){
  4098. var G__2497,G__2498;G__2497=G__2498=new Object();
  4099. while(G__2497===G__2498){
  4100. G__2497=(function(continue_val){
  4101. if(cljs.core.truth_(cljs.core.nil_QMARK_.call(null,cljs.core.seq.call(null,coll))))
  4102. {return true;
  4103. } else
  4104. {if(cljs.core.truth_(pred.call(null,cljs.core.first.call(null,coll))))
  4105. {{
  4106. var G__2499 = pred;
  4107. var G__2500 = cljs.core.next.call(null,coll);
  4108. pred = G__2499;
  4109. coll = G__2500;
  4110. return continue_val;
  4111. }
  4112. } else
  4113. {if(cljs.core.truth_("﷐'else"))
  4114. {return false;
  4115. } else
  4116. {return null;
  4117. }
  4118. }
  4119. }
  4120. })(G__2498);}
  4121. return G__2497;
  4122. });
  4123. /**
  4124. * Returns false if (pred x) is logical true for every x in
  4125. * coll, else true.
  4126. */
  4127. cljs.core.not_every_QMARK_ = (function not_every_QMARK_(pred,coll){
  4128. return cljs.core.not.call(null,cljs.core.every_QMARK_.call(null,pred,coll));
  4129. });
  4130. /**
  4131. * Returns the first logical true value of (pred x) for any x in coll,
  4132. * else nil.  One common idiom is to use a set as pred, for example
  4133. * this will return :fred if :fred is in the sequence, otherwise nil:
  4134. * (some #{:fred} coll)
  4135. */
  4136. cljs.core.some = (function some(pred,coll){
  4137. var G__2502,G__2503;G__2502=G__2503=new Object();
  4138. while(G__2502===G__2503){
  4139. G__2502=(function(continue_val){
  4140. if(cljs.core.truth_(cljs.core.seq.call(null,coll)))
  4141. {var or__3576__auto____2501 = pred.call(null,cljs.core.first.call(null,coll));
  4142.  
  4143. if(cljs.core.truth_(or__3576__auto____2501))
  4144. {return or__3576__auto____2501;
  4145. } else
  4146. {{
  4147. var G__2504 = pred;
  4148. var G__2505 = cljs.core.next.call(null,coll);
  4149. pred = G__2504;
  4150. coll = G__2505;
  4151. return continue_val;
  4152. }
  4153. }
  4154. } else
  4155. {return null;
  4156. }
  4157. })(G__2503);}
  4158. return G__2502;
  4159. });
  4160. /**
  4161. * Returns false if (pred x) is logical true for any x in coll,
  4162. * else true.
  4163. */
  4164. cljs.core.not_any_QMARK_ = (function not_any_QMARK_(pred,coll){
  4165. return cljs.core.not.call(null,cljs.core.some.call(null,pred,coll));
  4166. });
  4167. /**
  4168. * Returns true if n is even, throws an exception if n is not an integer
  4169. */
  4170. cljs.core.even_QMARK_ = (function even_QMARK_(n){
  4171. if(cljs.core.truth_(cljs.core.integer_QMARK_.call(null,n)))
  4172. {return cljs.core.zero_QMARK_.call(null,cljs.core.bit_and.call(null,n,1));
  4173. } else
  4174. {throw cljs.core.str.call(null,"Argument must be an integer: ",n);
  4175. }
  4176. });
  4177. /**
  4178. * Returns true if n is odd, throws an exception if n is not an integer
  4179. */
  4180. cljs.core.odd_QMARK_ = (function odd_QMARK_(n){
  4181. return cljs.core.not.call(null,cljs.core.even_QMARK_.call(null,n));
  4182. });
  4183. cljs.core.identity = (function identity(x){
  4184. return x;
  4185. });
  4186. /**
  4187. * Takes a fn f and returns a fn that takes the same arguments as f,
  4188. * has the same effects, if any, and returns the opposite truth value.
  4189. */
  4190. cljs.core.complement = (function complement(f){
  4191. return (function() {
  4192. var G__2506 = null;
  4193. var G__2506__2507 = (function (){
  4194. return cljs.core.not.call(null,f.call(null));
  4195. });
  4196. var G__2506__2508 = (function (x){
  4197. return cljs.core.not.call(null,f.call(null,x));
  4198. });
  4199. var G__2506__2509 = (function (x,y){
  4200. return cljs.core.not.call(null,f.call(null,x,y));
  4201. });
  4202. var G__2506__2510 = (function() {
  4203. var G__2512__delegate = function (x,y,zs){
  4204. return cljs.core.not.call(null,cljs.core.apply.call(null,f,x,y,zs));
  4205. };
  4206. var G__2512 = function (x,y,var_args){
  4207. var zs = null;
  4208. if (goog.isDef(var_args)) {
  4209.   zs = cljs.core.array_seq(Array.prototype.slice.call(arguments, 2),0);
  4210. }
  4211. return G__2512__delegate.call(this, x, y, zs);
  4212. };
  4213. G__2512.cljs$lang$maxFixedArity = 2;
  4214. G__2512.cljs$lang$applyTo = (function (arglist__2513){
  4215. var x = cljs.core.first(arglist__2513);
  4216. var y = cljs.core.first(cljs.core.next(arglist__2513));
  4217. var zs = cljs.core.rest(cljs.core.next(arglist__2513));
  4218. return G__2512__delegate.call(this, x, y, zs);
  4219. });
  4220. return G__2512;
  4221. })()
  4222. ;
  4223. G__2506 = function(x,y,var_args){
  4224. var zs = var_args;
  4225. switch(arguments.length){
  4226. case  0 :
  4227. return G__2506__2507.call(this);
  4228. case  1 :
  4229. return G__2506__2508.call(this,x);
  4230. case  2 :
  4231. return G__2506__2509.call(this,x,y);
  4232. default:
  4233. return G__2506__2510.apply(this,arguments);
  4234. }
  4235. throw('Invalid arity: ' + arguments.length);
  4236. };
  4237. G__2506.cljs$lang$maxFixedArity = 2;
  4238. G__2506.cljs$lang$applyTo = G__2506__2510.cljs$lang$applyTo;
  4239. return G__2506;
  4240. })()
  4241. });
  4242. /**
  4243. * Returns a function that takes any number of arguments and returns x.
  4244. */
  4245. cljs.core.constantly = (function constantly(x){
  4246. return (function() {
  4247. var G__2514__delegate = function (args){
  4248. return x;
  4249. };
  4250. var G__2514 = function (var_args){
  4251. var args = null;
  4252. if (goog.isDef(var_args)) {
  4253.   args = cljs.core.array_seq(Array.prototype.slice.call(arguments, 0),0);
  4254. }
  4255. return G__2514__delegate.call(this, args);
  4256. };
  4257. G__2514.cljs$lang$maxFixedArity = 0;
  4258. G__2514.cljs$lang$applyTo = (function (arglist__2515){
  4259. var args = cljs.core.seq( arglist__2515 );;
  4260. return G__2514__delegate.call(this, args);
  4261. });
  4262. return G__2514;
  4263. })()
  4264. ;
  4265. });
  4266. /**
  4267. * Takes a set of functions and returns a fn that is the composition
  4268. * of those fns.  The returned fn takes a variable number of args,
  4269. * applies the rightmost of fns to the args, the next
  4270. * fn (right-to-left) to the result, etc.
  4271. *
  4272. * TODO: Implement apply
  4273. * @param {...*} var_args
  4274. */
  4275. cljs.core.comp = (function() {
  4276. var comp = null;
  4277. var comp__2519 = (function (){
  4278. return cljs.core.identity;
  4279. });
  4280. var comp__2520 = (function (f){
  4281. return f;
  4282. });
  4283. var comp__2521 = (function (f,g){
  4284. return (function() {
  4285. var G__2525 = null;
  4286. var G__2525__2526 = (function (){
  4287. return f.call(null,g.call(null));
  4288. });
  4289. var G__2525__2527 = (function (x){
  4290. return f.call(null,g.call(null,x));
  4291. });
  4292. var G__2525__2528 = (function (x,y){
  4293. return f.call(null,g.call(null,x,y));
  4294. });
  4295. var G__2525__2529 = (function (x,y,z){
  4296. return f.call(null,g.call(null,x,y,z));
  4297. });
  4298. var G__2525__2530 = (function() {
  4299. var G__2532__delegate = function (x,y,z,args){
  4300. return f.call(null,cljs.core.apply.call(null,g,x,y,z,args));
  4301. };
  4302. var G__2532 = function (x,y,z,var_args){
  4303. var args = null;
  4304. if (goog.isDef(var_args)) {
  4305.   args = cljs.core.array_seq(Array.prototype.slice.call(arguments, 3),0);
  4306. }
  4307. return G__2532__delegate.call(this, x, y, z, args);
  4308. };
  4309. G__2532.cljs$lang$maxFixedArity = 3;
  4310. G__2532.cljs$lang$applyTo = (function (arglist__2533){
  4311. var x = cljs.core.first(arglist__2533);
  4312. var y = cljs.core.first(cljs.core.next(arglist__2533));
  4313. var z = cljs.core.first(cljs.core.next(cljs.core.next(arglist__2533)));
  4314. var args = cljs.core.rest(cljs.core.next(cljs.core.next(arglist__2533)));
  4315. return G__2532__delegate.call(this, x, y, z, args);
  4316. });
  4317. return G__2532;
  4318. })()
  4319. ;
  4320. G__2525 = function(x,y,z,var_args){
  4321. var args = var_args;
  4322. switch(arguments.length){
  4323. case  0 :
  4324. return G__2525__2526.call(this);
  4325. case  1 :
  4326. return G__2525__2527.call(this,x);
  4327. case  2 :
  4328. return G__2525__2528.call(this,x,y);
  4329. case  3 :
  4330. return G__2525__2529.call(this,x,y,z);
  4331. default:
  4332. return G__2525__2530.apply(this,arguments);
  4333. }
  4334. throw('Invalid arity: ' + arguments.length);
  4335. };
  4336. G__2525.cljs$lang$maxFixedArity = 3;
  4337. G__2525.cljs$lang$applyTo = G__2525__2530.cljs$lang$applyTo;
  4338. return G__2525;
  4339. })()
  4340. });
  4341. var comp__2522 = (function (f,g,h){
  4342. return (function() {
  4343. var G__2534 = null;
  4344. var G__2534__2535 = (function (){
  4345. return f.call(null,g.call(null,h.call(null)));
  4346. });
  4347. var G__2534__2536 = (function (x){
  4348. return f.call(null,g.call(null,h.call(null,x)));
  4349. });
  4350. var G__2534__2537 = (function (x,y){
  4351. return f.call(null,g.call(null,h.call(null,x,y)));
  4352. });
  4353. var G__2534__2538 = (function (x,y,z){
  4354. return f.call(null,g.call(null,h.call(null,x,y,z)));
  4355. });
  4356. var G__2534__2539 = (function() {
  4357. var G__2541__delegate = function (x,y,z,args){
  4358. return f.call(null,g.call(null,cljs.core.apply.call(null,h,x,y,z,args)));
  4359. };
  4360. var G__2541 = function (x,y,z,var_args){
  4361. var args = null;
  4362. if (goog.isDef(var_args)) {
  4363.   args = cljs.core.array_seq(Array.prototype.slice.call(arguments, 3),0);
  4364. }
  4365. return G__2541__delegate.call(this, x, y, z, args);
  4366. };
  4367. G__2541.cljs$lang$maxFixedArity = 3;
  4368. G__2541.cljs$lang$applyTo = (function (arglist__2542){
  4369. var x = cljs.core.first(arglist__2542);
  4370. var y = cljs.core.first(cljs.core.next(arglist__2542));
  4371. var z = cljs.core.first(cljs.core.next(cljs.core.next(arglist__2542)));
  4372. var args = cljs.core.rest(cljs.core.next(cljs.core.next(arglist__2542)));
  4373. return G__2541__delegate.call(this, x, y, z, args);
  4374. });
  4375. return G__2541;
  4376. })()
  4377. ;
  4378. G__2534 = function(x,y,z,var_args){
  4379. var args = var_args;
  4380. switch(arguments.length){
  4381. case  0 :
  4382. return G__2534__2535.call(this);
  4383. case  1 :
  4384. return G__2534__2536.call(this,x);
  4385. case  2 :
  4386. return G__2534__2537.call(this,x,y);
  4387. case  3 :
  4388. return G__2534__2538.call(this,x,y,z);
  4389. default:
  4390. return G__2534__2539.apply(this,arguments);
  4391. }
  4392. throw('Invalid arity: ' + arguments.length);
  4393. };
  4394. G__2534.cljs$lang$maxFixedArity = 3;
  4395. G__2534.cljs$lang$applyTo = G__2534__2539.cljs$lang$applyTo;
  4396. return G__2534;
  4397. })()
  4398. });
  4399. var comp__2523 = (function() {
  4400. var G__2543__delegate = function (f1,f2,f3,fs){
  4401. var fs__2516 = cljs.core.reverse.call(null,cljs.core.list_STAR_.call(null,f1,f2,f3,fs));
  4402.  
  4403. return (function() {
  4404. var G__2544__delegate = function (args){
  4405. var ret__2517 = cljs.core.apply.call(null,cljs.core.first.call(null,fs__2516),args);
  4406. var fs__2518 = cljs.core.next.call(null,fs__2516);
  4407.  
  4408. var G__2545,G__2546;G__2545=G__2546=new Object();
  4409. while(G__2545===G__2546){
  4410. G__2545=(function(continue_val){
  4411. if(cljs.core.truth_(fs__2518))
  4412. {{
  4413. var G__2547 = cljs.core.first.call(null,fs__2518).call(null,ret__2517);
  4414. var G__2548 = cljs.core.next.call(null,fs__2518);
  4415. ret__2517 = G__2547;
  4416. fs__2518 = G__2548;
  4417. return continue_val;
  4418. }
  4419. } else
  4420. {return ret__2517;
  4421. }
  4422. })(G__2546);}
  4423. return G__2545;
  4424. };
  4425. var G__2544 = function (var_args){
  4426. var args = null;
  4427. if (goog.isDef(var_args)) {
  4428.   args = cljs.core.array_seq(Array.prototype.slice.call(arguments, 0),0);
  4429. }
  4430. return G__2544__delegate.call(this, args);
  4431. };
  4432. G__2544.cljs$lang$maxFixedArity = 0;
  4433. G__2544.cljs$lang$applyTo = (function (arglist__2549){
  4434. var args = cljs.core.seq( arglist__2549 );;
  4435. return G__2544__delegate.call(this, args);
  4436. });
  4437. return G__2544;
  4438. })()
  4439. ;
  4440. };
  4441. var G__2543 = function (f1,f2,f3,var_args){
  4442. var fs = null;
  4443. if (goog.isDef(var_args)) {
  4444.   fs = cljs.core.array_seq(Array.prototype.slice.call(arguments, 3),0);
  4445. }
  4446. return G__2543__delegate.call(this, f1, f2, f3, fs);
  4447. };
  4448. G__2543.cljs$lang$maxFixedArity = 3;
  4449. G__2543.cljs$lang$applyTo = (function (arglist__2550){
  4450. var f1 = cljs.core.first(arglist__2550);
  4451. var f2 = cljs.core.first(cljs.core.next(arglist__2550));
  4452. var f3 = cljs.core.first(cljs.core.next(cljs.core.next(arglist__2550)));
  4453. var fs = cljs.core.rest(cljs.core.next(cljs.core.next(arglist__2550)));
  4454. return G__2543__delegate.call(this, f1, f2, f3, fs);
  4455. });
  4456. return G__2543;
  4457. })()
  4458. ;
  4459. comp = function(f1,f2,f3,var_args){
  4460. var fs = var_args;
  4461. switch(arguments.length){
  4462. case  0 :
  4463. return comp__2519.call(this);
  4464. case  1 :
  4465. return comp__2520.call(this,f1);
  4466. case  2 :
  4467. return comp__2521.call(this,f1,f2);
  4468. case  3 :
  4469. return comp__2522.call(this,f1,f2,f3);
  4470. default:
  4471. return comp__2523.apply(this,arguments);
  4472. }
  4473. throw('Invalid arity: ' + arguments.length);
  4474. };
  4475. comp.cljs$lang$maxFixedArity = 3;
  4476. comp.cljs$lang$applyTo = comp__2523.cljs$lang$applyTo;
  4477. return comp;
  4478. })()
  4479. ;
  4480. /**
  4481. * Takes a function f and fewer than the normal arguments to f, and
  4482. * returns a fn that takes a variable number of additional args. When
  4483. * called, the returned function calls f with args + additional args.
  4484. *
  4485. * TODO: Implement apply
  4486. * @param {...*} var_args
  4487. */
  4488. cljs.core.partial = (function() {
  4489. var partial = null;
  4490. var partial__2551 = (function (f,arg1){
  4491. return (function() {
  4492. var G__2556__delegate = function (args){
  4493. return cljs.core.apply.call(null,f,arg1,args);
  4494. };
  4495. var G__2556 = function (var_args){
  4496. var args = null;
  4497. if (goog.isDef(var_args)) {
  4498.   args = cljs.core.array_seq(Array.prototype.slice.call(arguments, 0),0);
  4499. }
  4500. return G__2556__delegate.call(this, args);
  4501. };
  4502. G__2556.cljs$lang$maxFixedArity = 0;
  4503. G__2556.cljs$lang$applyTo = (function (arglist__2557){
  4504. var args = cljs.core.seq( arglist__2557 );;
  4505. return G__2556__delegate.call(this, args);
  4506. });
  4507. return G__2556;
  4508. })()
  4509. ;
  4510. });
  4511. var partial__2552 = (function (f,arg1,arg2){
  4512. return (function() {
  4513. var G__2558__delegate = function (args){
  4514. return cljs.core.apply.call(null,f,arg1,arg2,args);
  4515. };
  4516. var G__2558 = function (var_args){
  4517. var args = null;
  4518. if (goog.isDef(var_args)) {
  4519.   args = cljs.core.array_seq(Array.prototype.slice.call(arguments, 0),0);
  4520. }
  4521. return G__2558__delegate.call(this, args);
  4522. };
  4523. G__2558.cljs$lang$maxFixedArity = 0;
  4524. G__2558.cljs$lang$applyTo = (function (arglist__2559){
  4525. var args = cljs.core.seq( arglist__2559 );;
  4526. return G__2558__delegate.call(this, args);
  4527. });
  4528. return G__2558;
  4529. })()
  4530. ;
  4531. });
  4532. var partial__2553 = (function (f,arg1,arg2,arg3){
  4533. return (function() {
  4534. var G__2560__delegate = function (args){
  4535. return cljs.core.apply.call(null,f,arg1,arg2,arg3,args);
  4536. };
  4537. var G__2560 = function (var_args){
  4538. var args = null;
  4539. if (goog.isDef(var_args)) {
  4540.   args = cljs.core.array_seq(Array.prototype.slice.call(arguments, 0),0);
  4541. }
  4542. return G__2560__delegate.call(this, args);
  4543. };
  4544. G__2560.cljs$lang$maxFixedArity = 0;
  4545. G__2560.cljs$lang$applyTo = (function (arglist__2561){
  4546. var args = cljs.core.seq( arglist__2561 );;
  4547. return G__2560__delegate.call(this, args);
  4548. });
  4549. return G__2560;
  4550. })()
  4551. ;
  4552. });
  4553. var partial__2554 = (function() {
  4554. var G__2562__delegate = function (f,arg1,arg2,arg3,more){
  4555. return (function() {
  4556. var G__2563__delegate = function (args){
  4557. return cljs.core.apply.call(null,f,arg1,arg2,arg3,cljs.core.concat.call(null,more,args));
  4558. };
  4559. var G__2563 = function (var_args){
  4560. var args = null;
  4561. if (goog.isDef(var_args)) {
  4562.   args = cljs.core.array_seq(Array.prototype.slice.call(arguments, 0),0);
  4563. }
  4564. return G__2563__delegate.call(this, args);
  4565. };
  4566. G__2563.cljs$lang$maxFixedArity = 0;
  4567. G__2563.cljs$lang$applyTo = (function (arglist__2564){
  4568. var args = cljs.core.seq( arglist__2564 );;
  4569. return G__2563__delegate.call(this, args);
  4570. });
  4571. return G__2563;
  4572. })()
  4573. ;
  4574. };
  4575. var G__2562 = function (f,arg1,arg2,arg3,var_args){
  4576. var more = null;
  4577. if (goog.isDef(var_args)) {
  4578.   more = cljs.core.array_seq(Array.prototype.slice.call(arguments, 4),0);
  4579. }
  4580. return G__2562__delegate.call(this, f, arg1, arg2, arg3, more);
  4581. };
  4582. G__2562.cljs$lang$maxFixedArity = 4;
  4583. G__2562.cljs$lang$applyTo = (function (arglist__2565){
  4584. var f = cljs.core.first(arglist__2565);
  4585. var arg1 = cljs.core.first(cljs.core.next(arglist__2565));
  4586. var arg2 = cljs.core.first(cljs.core.next(cljs.core.next(arglist__2565)));
  4587. var arg3 = cljs.core.first(cljs.core.next(cljs.core.next(cljs.core.next(arglist__2565))));
  4588. var more = cljs.core.rest(cljs.core.next(cljs.core.next(cljs.core.next(arglist__2565))));
  4589. return G__2562__delegate.call(this, f, arg1, arg2, arg3, more);
  4590. });
  4591. return G__2562;
  4592. })()
  4593. ;
  4594. partial = function(f,arg1,arg2,arg3,var_args){
  4595. var more = var_args;
  4596. switch(arguments.length){
  4597. case  2 :
  4598. return partial__2551.call(this,f,arg1);
  4599. case  3 :
  4600. return partial__2552.call(this,f,arg1,arg2);
  4601. case  4 :
  4602. return partial__2553.call(this,f,arg1,arg2,arg3);
  4603. default:
  4604. return partial__2554.apply(this,arguments);
  4605. }
  4606. throw('Invalid arity: ' + arguments.length);
  4607. };
  4608. partial.cljs$lang$maxFixedArity = 4;
  4609. partial.cljs$lang$applyTo = partial__2554.cljs$lang$applyTo;
  4610. return partial;
  4611. })()
  4612. ;
  4613. /**
  4614. * Takes a function f, and returns a function that calls f, replacing
  4615. * a nil first argument to f with the supplied value x. Higher arity
  4616. * versions can replace arguments in the second and third
  4617. * positions (y, z). Note that the function f can take any number of
  4618. * arguments, not just the one(s) being nil-patched.
  4619. */
  4620. cljs.core.fnil = (function() {
  4621. var fnil = null;
  4622. var fnil__2566 = (function (f,x){
  4623. return (function() {
  4624. var G__2570 = null;
  4625. var G__2570__2571 = (function (a){
  4626. return f.call(null,(cljs.core.truth_(cljs.core.nil_QMARK_.call(null,a))?x:a));
  4627. });
  4628. var G__2570__2572 = (function (a,b){
  4629. return f.call(null,(cljs.core.truth_(cljs.core.nil_QMARK_.call(null,a))?x:a),b);
  4630. });
  4631. var G__2570__2573 = (function (a,b,c){
  4632. return f.call(null,(cljs.core.truth_(cljs.core.nil_QMARK_.call(null,a))?x:a),b,c);
  4633. });
  4634. var G__2570__2574 = (function() {
  4635. var G__2576__delegate = function (a,b,c,ds){
  4636. return cljs.core.apply.call(null,f,(cljs.core.truth_(cljs.core.nil_QMARK_.call(null,a))?x:a),b,c,ds);
  4637. };
  4638. var G__2576 = function (a,b,c,var_args){
  4639. var ds = null;
  4640. if (goog.isDef(var_args)) {
  4641.   ds = cljs.core.array_seq(Array.prototype.slice.call(arguments, 3),0);
  4642. }
  4643. return G__2576__delegate.call(this, a, b, c, ds);
  4644. };
  4645. G__2576.cljs$lang$maxFixedArity = 3;
  4646. G__2576.cljs$lang$applyTo = (function (arglist__2577){
  4647. var a = cljs.core.first(arglist__2577);
  4648. var b = cljs.core.first(cljs.core.next(arglist__2577));
  4649. var c = cljs.core.first(cljs.core.next(cljs.core.next(arglist__2577)));
  4650. var ds = cljs.core.rest(cljs.core.next(cljs.core.next(arglist__2577)));
  4651. return G__2576__delegate.call(this, a, b, c, ds);
  4652. });
  4653. return G__2576;
  4654. })()
  4655. ;
  4656. G__2570 = function(a,b,c,var_args){
  4657. var ds = var_args;
  4658. switch(arguments.length){
  4659. case  1 :
  4660. return G__2570__2571.call(this,a);
  4661. case  2 :
  4662. return G__2570__2572.call(this,a,b);
  4663. case  3 :
  4664. return G__2570__2573.call(this,a,b,c);
  4665. default:
  4666. return G__2570__2574.apply(this,arguments);
  4667. }
  4668. throw('Invalid arity: ' + arguments.length);
  4669. };
  4670. G__2570.cljs$lang$maxFixedArity = 3;
  4671. G__2570.cljs$lang$applyTo = G__2570__2574.cljs$lang$applyTo;
  4672. return G__2570;
  4673. })()
  4674. });
  4675. var fnil__2567 = (function (f,x,y){
  4676. return (function() {
  4677. var G__2578 = null;
  4678. var G__2578__2579 = (function (a,b){
  4679. return f.call(null,(cljs.core.truth_(cljs.core.nil_QMARK_.call(null,a))?x:a),(cljs.core.truth_(cljs.core.nil_QMARK_.call(null,b))?y:b));
  4680. });
  4681. var G__2578__2580 = (function (a,b,c){
  4682. return f.call(null,(cljs.core.truth_(cljs.core.nil_QMARK_.call(null,a))?x:a),(cljs.core.truth_(cljs.core.nil_QMARK_.call(null,b))?y:b),c);
  4683. });
  4684. var G__2578__2581 = (function() {
  4685. var G__2583__delegate = function (a,b,c,ds){
  4686. return cljs.core.apply.call(null,f,(cljs.core.truth_(cljs.core.nil_QMARK_.call(null,a))?x:a),(cljs.core.truth_(cljs.core.nil_QMARK_.call(null,b))?y:b),c,ds);
  4687. };
  4688. var G__2583 = function (a,b,c,var_args){
  4689. var ds = null;
  4690. if (goog.isDef(var_args)) {
  4691.   ds = cljs.core.array_seq(Array.prototype.slice.call(arguments, 3),0);
  4692. }
  4693. return G__2583__delegate.call(this, a, b, c, ds);
  4694. };
  4695. G__2583.cljs$lang$maxFixedArity = 3;
  4696. G__2583.cljs$lang$applyTo = (function (arglist__2584){
  4697. var a = cljs.core.first(arglist__2584);
  4698. var b = cljs.core.first(cljs.core.next(arglist__2584));
  4699. var c = cljs.core.first(cljs.core.next(cljs.core.next(arglist__2584)));
  4700. var ds = cljs.core.rest(cljs.core.next(cljs.core.next(arglist__2584)));
  4701. return G__2583__delegate.call(this, a, b, c, ds);
  4702. });
  4703. return G__2583;
  4704. })()
  4705. ;
  4706. G__2578 = function(a,b,c,var_args){
  4707. var ds = var_args;
  4708. switch(arguments.length){
  4709. case  2 :
  4710. return G__2578__2579.call(this,a,b);
  4711. case  3 :
  4712. return G__2578__2580.call(this,a,b,c);
  4713. default:
  4714. return G__2578__2581.apply(this,arguments);
  4715. }
  4716. throw('Invalid arity: ' + arguments.length);
  4717. };
  4718. G__2578.cljs$lang$maxFixedArity = 3;
  4719. G__2578.cljs$lang$applyTo = G__2578__2581.cljs$lang$applyTo;
  4720. return G__2578;
  4721. })()
  4722. });
  4723. var fnil__2568 = (function (f,x,y,z){
  4724. return (function() {
  4725. var G__2585 = null;
  4726. var G__2585__2586 = (function (a,b){
  4727. return f.call(null,(cljs.core.truth_(cljs.core.nil_QMARK_.call(null,a))?x:a),(cljs.core.truth_(cljs.core.nil_QMARK_.call(null,b))?y:b));
  4728. });
  4729. var G__2585__2587 = (function (a,b,c){
  4730. return f.call(null,(cljs.core.truth_(cljs.core.nil_QMARK_.call(null,a))?x:a),(cljs.core.truth_(cljs.core.nil_QMARK_.call(null,b))?y:b),(cljs.core.truth_(cljs.core.nil_QMARK_.call(null,c))?z:c));
  4731. });
  4732. var G__2585__2588 = (function() {
  4733. var G__2590__delegate = function (a,b,c,ds){
  4734. return cljs.core.apply.call(null,f,(cljs.core.truth_(cljs.core.nil_QMARK_.call(null,a))?x:a),(cljs.core.truth_(cljs.core.nil_QMARK_.call(null,b))?y:b),(cljs.core.truth_(cljs.core.nil_QMARK_.call(null,c))?z:c),ds);
  4735. };
  4736. var G__2590 = function (a,b,c,var_args){
  4737. var ds = null;
  4738. if (goog.isDef(var_args)) {
  4739.   ds = cljs.core.array_seq(Array.prototype.slice.call(arguments, 3),0);
  4740. }
  4741. return G__2590__delegate.call(this, a, b, c, ds);
  4742. };
  4743. G__2590.cljs$lang$maxFixedArity = 3;
  4744. G__2590.cljs$lang$applyTo = (function (arglist__2591){
  4745. var a = cljs.core.first(arglist__2591);
  4746. var b = cljs.core.first(cljs.core.next(arglist__2591));
  4747. var c = cljs.core.first(cljs.core.next(cljs.core.next(arglist__2591)));
  4748. var ds = cljs.core.rest(cljs.core.next(cljs.core.next(arglist__2591)));
  4749. return G__2590__delegate.call(this, a, b, c, ds);
  4750. });
  4751. return G__2590;
  4752. })()
  4753. ;
  4754. G__2585 = function(a,b,c,var_args){
  4755. var ds = var_args;
  4756. switch(arguments.length){
  4757. case  2 :
  4758. return G__2585__2586.call(this,a,b);
  4759. case  3 :
  4760. return G__2585__2587.call(this,a,b,c);
  4761. default:
  4762. return G__2585__2588.apply(this,arguments);
  4763. }
  4764. throw('Invalid arity: ' + arguments.length);
  4765. };
  4766. G__2585.cljs$lang$maxFixedArity = 3;
  4767. G__2585.cljs$lang$applyTo = G__2585__2588.cljs$lang$applyTo;
  4768. return G__2585;
  4769. })()
  4770. });
  4771. fnil = function(f,x,y,z){
  4772. switch(arguments.length){
  4773. case  2 :
  4774. return fnil__2566.call(this,f,x);
  4775. case  3 :
  4776. return fnil__2567.call(this,f,x,y);
  4777. case  4 :
  4778. return fnil__2568.call(this,f,x,y,z);
  4779. }
  4780. throw('Invalid arity: ' + arguments.length);
  4781. };
  4782. return fnil;
  4783. })()
  4784. ;
  4785. /**
  4786. * Returns a lazy sequence consisting of the result of applying f to 0
  4787. * and the first item of coll, followed by applying f to 1 and the second
  4788. * item in coll, etc, until coll is exhausted. Thus function f should
  4789. * accept 2 arguments, index and item.
  4790. */
  4791. cljs.core.map_indexed = (function map_indexed(f,coll){
  4792. var mapi__2594 = (function mpi(idx,coll){
  4793. return (new cljs.core.LazySeq(null,false,(function (){
  4794. var temp__3726__auto____2592 = cljs.core.seq.call(null,coll);
  4795.  
  4796. if(cljs.core.truth_(temp__3726__auto____2592))
  4797. {var s__2593 = temp__3726__auto____2592;
  4798.  
  4799. return cljs.core.cons.call(null,f.call(null,idx,cljs.core.first.call(null,s__2593)),mpi.call(null,cljs.core.inc.call(null,idx),cljs.core.rest.call(null,s__2593)));
  4800. } else
  4801. {return null;
  4802. }
  4803. })));
  4804. });
  4805.  
  4806. return mapi__2594.call(null,0,coll);
  4807. });
  4808. /**
  4809. * Returns a lazy sequence of the non-nil results of (f item). Note,
  4810. * this means false return values will be included.  f must be free of
  4811. * side-effects.
  4812. */
  4813. cljs.core.keep = (function keep(f,coll){
  4814. return (new cljs.core.LazySeq(null,false,(function (){
  4815. var temp__3726__auto____2595 = cljs.core.seq.call(null,coll);
  4816.  
  4817. if(cljs.core.truth_(temp__3726__auto____2595))
  4818. {var s__2596 = temp__3726__auto____2595;
  4819.  
  4820. var x__2597 = f.call(null,cljs.core.first.call(null,s__2596));
  4821.  
  4822. if(cljs.core.truth_(cljs.core.nil_QMARK_.call(null,x__2597)))
  4823. {return keep.call(null,f,cljs.core.rest.call(null,s__2596));
  4824. } else
  4825. {return cljs.core.cons.call(null,x__2597,keep.call(null,f,cljs.core.rest.call(null,s__2596)));
  4826. }
  4827. } else
  4828. {return null;
  4829. }
  4830. })));
  4831. });
  4832. /**
  4833. * Returns a lazy sequence of the non-nil results of (f index item). Note,
  4834. * this means false return values will be included.  f must be free of
  4835. * side-effects.
  4836. */
  4837. cljs.core.keep_indexed = (function keep_indexed(f,coll){
  4838. var keepi__2607 = (function kpi(idx,coll){
  4839. return (new cljs.core.LazySeq(null,false,(function (){
  4840. var temp__3726__auto____2604 = cljs.core.seq.call(null,coll);
  4841.  
  4842. if(cljs.core.truth_(temp__3726__auto____2604))
  4843. {var s__2605 = temp__3726__auto____2604;
  4844.  
  4845. var x__2606 = f.call(null,idx,cljs.core.first.call(null,s__2605));
  4846.  
  4847. if(cljs.core.truth_(cljs.core.nil_QMARK_.call(null,x__2606)))
  4848. {return kpi.call(null,cljs.core.inc.call(null,idx),cljs.core.rest.call(null,s__2605));
  4849. } else
  4850. {return cljs.core.cons.call(null,x__2606,kpi.call(null,cljs.core.inc.call(null,idx),cljs.core.rest.call(null,s__2605)));
  4851. }
  4852. } else
  4853. {return null;
  4854. }
  4855. })));
  4856. });
  4857.  
  4858. return keepi__2607.call(null,0,coll);
  4859. });
  4860. /**
  4861. * Takes a set of predicates and returns a function f that returns true if all of its
  4862. * composing predicates return a logical true value against all of its arguments, else it returns
  4863. * false. Note that f is short-circuiting in that it will stop execution on the first
  4864. * argument that triggers a logical false result against the original predicates.
  4865. * @param {...*} var_args
  4866. */
  4867. cljs.core.every_pred = (function() {
  4868. var every_pred = null;
  4869. var every_pred__2652 = (function (p){
  4870. return (function() {
  4871. var ep1 = null;
  4872. var ep1__2657 = (function (){
  4873. return true;
  4874. });
  4875. var ep1__2658 = (function (x){
  4876. return cljs.core.boolean$.call(null,p.call(null,x));
  4877. });
  4878. var ep1__2659 = (function (x,y){
  4879. return cljs.core.boolean$.call(null,(function (){var and__3574__auto____2614 = p.call(null,x);
  4880.  
  4881. if(cljs.core.truth_(and__3574__auto____2614))
  4882. {return p.call(null,y);
  4883. } else
  4884. {return and__3574__auto____2614;
  4885. }
  4886. })());
  4887. });
  4888. var ep1__2660 = (function (x,y,z){
  4889. return cljs.core.boolean$.call(null,(function (){var and__3574__auto____2615 = p.call(null,x);
  4890.  
  4891. if(cljs.core.truth_(and__3574__auto____2615))
  4892. {var and__3574__auto____2616 = p.call(null,y);
  4893.  
  4894. if(cljs.core.truth_(and__3574__auto____2616))
  4895. {return p.call(null,z);
  4896. } else
  4897. {return and__3574__auto____2616;
  4898. }
  4899. } else
  4900. {return and__3574__auto____2615;
  4901. }
  4902. })());
  4903. });
  4904. var ep1__2661 = (function() {
  4905. var G__2663__delegate = function (x,y,z,args){
  4906. return cljs.core.boolean$.call(null,(function (){var and__3574__auto____2617 = ep1.call(null,x,y,z);
  4907.  
  4908. if(cljs.core.truth_(and__3574__auto____2617))
  4909. {return cljs.core.every_QMARK_.call(null,p,args);
  4910. } else
  4911. {return and__3574__auto____2617;
  4912. }
  4913. })());
  4914. };
  4915. var G__2663 = function (x,y,z,var_args){
  4916. var args = null;
  4917. if (goog.isDef(var_args)) {
  4918.   args = cljs.core.array_seq(Array.prototype.slice.call(arguments, 3),0);
  4919. }
  4920. return G__2663__delegate.call(this, x, y, z, args);
  4921. };
  4922. G__2663.cljs$lang$maxFixedArity = 3;
  4923. G__2663.cljs$lang$applyTo = (function (arglist__2664){
  4924. var x = cljs.core.first(arglist__2664);
  4925. var y = cljs.core.first(cljs.core.next(arglist__2664));
  4926. var z = cljs.core.first(cljs.core.next(cljs.core.next(arglist__2664)));
  4927. var args = cljs.core.rest(cljs.core.next(cljs.core.next(arglist__2664)));
  4928. return G__2663__delegate.call(this, x, y, z, args);
  4929. });
  4930. return G__2663;
  4931. })()
  4932. ;
  4933. ep1 = function(x,y,z,var_args){
  4934. var args = var_args;
  4935. switch(arguments.length){
  4936. case  0 :
  4937. return ep1__2657.call(this);
  4938. case  1 :
  4939. return ep1__2658.call(this,x);
  4940. case  2 :
  4941. return ep1__2659.call(this,x,y);
  4942. case  3 :
  4943. return ep1__2660.call(this,x,y,z);
  4944. default:
  4945. return ep1__2661.apply(this,arguments);
  4946. }
  4947. throw('Invalid arity: ' + arguments.length);
  4948. };
  4949. ep1.cljs$lang$maxFixedArity = 3;
  4950. ep1.cljs$lang$applyTo = ep1__2661.cljs$lang$applyTo;
  4951. return ep1;
  4952. })()
  4953. });
  4954. var every_pred__2653 = (function (p1,p2){
  4955. return (function() {
  4956. var ep2 = null;
  4957. var ep2__2665 = (function (){
  4958. return true;
  4959. });
  4960. var ep2__2666 = (function (x){
  4961. return cljs.core.boolean$.call(null,(function (){var and__3574__auto____2618 = p1.call(null,x);
  4962.  
  4963. if(cljs.core.truth_(and__3574__auto____2618))
  4964. {return p2.call(null,x);
  4965. } else
  4966. {return and__3574__auto____2618;
  4967. }
  4968. })());
  4969. });
  4970. var ep2__2667 = (function (x,y){
  4971. return cljs.core.boolean$.call(null,(function (){var and__3574__auto____2619 = p1.call(null,x);
  4972.  
  4973. if(cljs.core.truth_(and__3574__auto____2619))
  4974. {var and__3574__auto____2620 = p1.call(null,y);
  4975.  
  4976. if(cljs.core.truth_(and__3574__auto____2620))
  4977. {var and__3574__auto____2621 = p2.call(null,x);
  4978.  
  4979. if(cljs.core.truth_(and__3574__auto____2621))
  4980. {return p2.call(null,y);
  4981. } else
  4982. {return and__3574__auto____2621;
  4983. }
  4984. } else
  4985. {return and__3574__auto____2620;
  4986. }
  4987. } else
  4988. {return and__3574__auto____2619;
  4989. }
  4990. })());
  4991. });
  4992. var ep2__2668 = (function (x,y,z){
  4993. return cljs.core.boolean$.call(null,(function (){var and__3574__auto____2622 = p1.call(null,x);
  4994.  
  4995. if(cljs.core.truth_(and__3574__auto____2622))
  4996. {var and__3574__auto____2623 = p1.call(null,y);
  4997.  
  4998. if(cljs.core.truth_(and__3574__auto____2623))
  4999. {var and__3574__auto____2624 = p1.call(null,z);
  5000.  
  5001. if(cljs.core.truth_(and__3574__auto____2624))
  5002. {var and__3574__auto____2625 = p2.call(null,x);
  5003.  
  5004. if(cljs.core.truth_(and__3574__auto____2625))
  5005. {var and__3574__auto____2626 = p2.call(null,y);
  5006.  
  5007. if(cljs.core.truth_(and__3574__auto____2626))
  5008. {return p2.call(null,z);
  5009. } else
  5010. {return and__3574__auto____2626;
  5011. }
  5012. } else
  5013. {return and__3574__auto____2625;
  5014. }
  5015. } else
  5016. {return and__3574__auto____2624;
  5017. }
  5018. } else
  5019. {return and__3574__auto____2623;
  5020. }
  5021. } else
  5022. {return and__3574__auto____2622;
  5023. }
  5024. })());
  5025. });
  5026. var ep2__2669 = (function() {
  5027. var G__2671__delegate = function (x,y,z,args){
  5028. return cljs.core.boolean$.call(null,(function (){var and__3574__auto____2627 = ep2.call(null,x,y,z);
  5029.  
  5030. if(cljs.core.truth_(and__3574__auto____2627))
  5031. {return cljs.core.every_QMARK_.call(null,(function (p1__2598_SHARP_){
  5032. var and__3574__auto____2628 = p1.call(null,p1__2598_SHARP_);
  5033.  
  5034. if(cljs.core.truth_(and__3574__auto____2628))
  5035. {return p2.call(null,p1__2598_SHARP_);
  5036. } else
  5037. {return and__3574__auto____2628;
  5038. }
  5039. }),args);
  5040. } else
  5041. {return and__3574__auto____2627;
  5042. }
  5043. })());
  5044. };
  5045. var G__2671 = function (x,y,z,var_args){
  5046. var args = null;
  5047. if (goog.isDef(var_args)) {
  5048.   args = cljs.core.array_seq(Array.prototype.slice.call(arguments, 3),0);
  5049. }
  5050. return G__2671__delegate.call(this, x, y, z, args);
  5051. };
  5052. G__2671.cljs$lang$maxFixedArity = 3;
  5053. G__2671.cljs$lang$applyTo = (function (arglist__2672){
  5054. var x = cljs.core.first(arglist__2672);
  5055. var y = cljs.core.first(cljs.core.next(arglist__2672));
  5056. var z = cljs.core.first(cljs.core.next(cljs.core.next(arglist__2672)));
  5057. var args = cljs.core.rest(cljs.core.next(cljs.core.next(arglist__2672)));
  5058. return G__2671__delegate.call(this, x, y, z, args);
  5059. });
  5060. return G__2671;
  5061. })()
  5062. ;
  5063. ep2 = function(x,y,z,var_args){
  5064. var args = var_args;
  5065. switch(arguments.length){
  5066. case  0 :
  5067. return ep2__2665.call(this);
  5068. case  1 :
  5069. return ep2__2666.call(this,x);
  5070. case  2 :
  5071. return ep2__2667.call(this,x,y);
  5072. case  3 :
  5073. return ep2__2668.call(this,x,y,z);
  5074. default:
  5075. return ep2__2669.apply(this,arguments);
  5076. }
  5077. throw('Invalid arity: ' + arguments.length);
  5078. };
  5079. ep2.cljs$lang$maxFixedArity = 3;
  5080. ep2.cljs$lang$applyTo = ep2__2669.cljs$lang$applyTo;
  5081. return ep2;
  5082. })()
  5083. });
  5084. var every_pred__2654 = (function (p1,p2,p3){
  5085. return (function() {
  5086. var ep3 = null;
  5087. var ep3__2673 = (function (){
  5088. return true;
  5089. });
  5090. var ep3__2674 = (function (x){
  5091. return cljs.core.boolean$.call(null,(function (){var and__3574__auto____2629 = p1.call(null,x);
  5092.  
  5093. if(cljs.core.truth_(and__3574__auto____2629))
  5094. {var and__3574__auto____2630 = p2.call(null,x);
  5095.  
  5096. if(cljs.core.truth_(and__3574__auto____2630))
  5097. {return p3.call(null,x);
  5098. } else
  5099. {return and__3574__auto____2630;
  5100. }
  5101. } else
  5102. {return and__3574__auto____2629;
  5103. }
  5104. })());
  5105. });
  5106. var ep3__2675 = (function (x,y){
  5107. return cljs.core.boolean$.call(null,(function (){var and__3574__auto____2631 = p1.call(null,x);
  5108.  
  5109. if(cljs.core.truth_(and__3574__auto____2631))
  5110. {var and__3574__auto____2632 = p2.call(null,x);
  5111.  
  5112. if(cljs.core.truth_(and__3574__auto____2632))
  5113. {var and__3574__auto____2633 = p3.call(null,x);
  5114.  
  5115. if(cljs.core.truth_(and__3574__auto____2633))
  5116. {var and__3574__auto____2634 = p1.call(null,y);
  5117.  
  5118. if(cljs.core.truth_(and__3574__auto____2634))
  5119. {var and__3574__auto____2635 = p2.call(null,y);
  5120.  
  5121. if(cljs.core.truth_(and__3574__auto____2635))
  5122. {return p3.call(null,y);
  5123. } else
  5124. {return and__3574__auto____2635;
  5125. }
  5126. } else
  5127. {return and__3574__auto____2634;
  5128. }
  5129. } else
  5130. {return and__3574__auto____2633;
  5131. }
  5132. } else
  5133. {return and__3574__auto____2632;
  5134. }
  5135. } else
  5136. {return and__3574__auto____2631;
  5137. }
  5138. })());
  5139. });
  5140. var ep3__2676 = (function (x,y,z){
  5141. return cljs.core.boolean$.call(null,(function (){var and__3574__auto____2636 = p1.call(null,x);
  5142.  
  5143. if(cljs.core.truth_(and__3574__auto____2636))
  5144. {var and__3574__auto____2637 = p2.call(null,x);
  5145.  
  5146. if(cljs.core.truth_(and__3574__auto____2637))
  5147. {var and__3574__auto____2638 = p3.call(null,x);
  5148.  
  5149. if(cljs.core.truth_(and__3574__auto____2638))
  5150. {var and__3574__auto____2639 = p1.call(null,y);
  5151.  
  5152. if(cljs.core.truth_(and__3574__auto____2639))
  5153. {var and__3574__auto____2640 = p2.call(null,y);
  5154.  
  5155. if(cljs.core.truth_(and__3574__auto____2640))
  5156. {var and__3574__auto____2641 = p3.call(null,y);
  5157.  
  5158. if(cljs.core.truth_(and__3574__auto____2641))
  5159. {var and__3574__auto____2642 = p1.call(null,z);
  5160.  
  5161. if(cljs.core.truth_(and__3574__auto____2642))
  5162. {var and__3574__auto____2643 = p2.call(null,z);
  5163.  
  5164. if(cljs.core.truth_(and__3574__auto____2643))
  5165. {return p3.call(null,z);
  5166. } else
  5167. {return and__3574__auto____2643;
  5168. }
  5169. } else
  5170. {return and__3574__auto____2642;
  5171. }
  5172. } else
  5173. {return and__3574__auto____2641;
  5174. }
  5175. } else
  5176. {return and__3574__auto____2640;
  5177. }
  5178. } else
  5179. {return and__3574__auto____2639;
  5180. }
  5181. } else
  5182. {return and__3574__auto____2638;
  5183. }
  5184. } else
  5185. {return and__3574__auto____2637;
  5186. }
  5187. } else
  5188. {return and__3574__auto____2636;
  5189. }
  5190. })());
  5191. });
  5192. var ep3__2677 = (function() {
  5193. var G__2679__delegate = function (x,y,z,args){
  5194. return cljs.core.boolean$.call(null,(function (){var and__3574__auto____2644 = ep3.call(null,x,y,z);
  5195.  
  5196. if(cljs.core.truth_(and__3574__auto____2644))
  5197. {return cljs.core.every_QMARK_.call(null,(function (p1__2599_SHARP_){
  5198. var and__3574__auto____2645 = p1.call(null,p1__2599_SHARP_);
  5199.  
  5200. if(cljs.core.truth_(and__3574__auto____2645))
  5201. {var and__3574__auto____2646 = p2.call(null,p1__2599_SHARP_);
  5202.  
  5203. if(cljs.core.truth_(and__3574__auto____2646))
  5204. {return p3.call(null,p1__2599_SHARP_);
  5205. } else
  5206. {return and__3574__auto____2646;
  5207. }
  5208. } else
  5209. {return and__3574__auto____2645;
  5210. }
  5211. }),args);
  5212. } else
  5213. {return and__3574__auto____2644;
  5214. }
  5215. })());
  5216. };
  5217. var G__2679 = function (x,y,z,var_args){
  5218. var args = null;
  5219. if (goog.isDef(var_args)) {
  5220.   args = cljs.core.array_seq(Array.prototype.slice.call(arguments, 3),0);
  5221. }
  5222. return G__2679__delegate.call(this, x, y, z, args);
  5223. };
  5224. G__2679.cljs$lang$maxFixedArity = 3;
  5225. G__2679.cljs$lang$applyTo = (function (arglist__2680){
  5226. var x = cljs.core.first(arglist__2680);
  5227. var y = cljs.core.first(cljs.core.next(arglist__2680));
  5228. var z = cljs.core.first(cljs.core.next(cljs.core.next(arglist__2680)));
  5229. var args = cljs.core.rest(cljs.core.next(cljs.core.next(arglist__2680)));
  5230. return G__2679__delegate.call(this, x, y, z, args);
  5231. });
  5232. return G__2679;
  5233. })()
  5234. ;
  5235. ep3 = function(x,y,z,var_args){
  5236. var args = var_args;
  5237. switch(arguments.length){
  5238. case  0 :
  5239. return ep3__2673.call(this);
  5240. case  1 :
  5241. return ep3__2674.call(this,x);
  5242. case  2 :
  5243. return ep3__2675.call(this,x,y);
  5244. case  3 :
  5245. return ep3__2676.call(this,x,y,z);
  5246. default:
  5247. return ep3__2677.apply(this,arguments);
  5248. }
  5249. throw('Invalid arity: ' + arguments.length);
  5250. };
  5251. ep3.cljs$lang$maxFixedArity = 3;
  5252. ep3.cljs$lang$applyTo = ep3__2677.cljs$lang$applyTo;
  5253. return ep3;
  5254. })()
  5255. });
  5256. var every_pred__2655 = (function() {
  5257. var G__2681__delegate = function (p1,p2,p3,ps){
  5258. var ps__2647 = cljs.core.list_STAR_.call(null,p1,p2,p3,ps);
  5259.  
  5260. return (function() {
  5261. var epn = null;
  5262. var epn__2682 = (function (){
  5263. return true;
  5264. });
  5265. var epn__2683 = (function (x){
  5266. return cljs.core.every_QMARK_.call(null,(function (p1__2600_SHARP_){
  5267. return p1__2600_SHARP_.call(null,x);
  5268. }),ps__2647);
  5269. });
  5270. var epn__2684 = (function (x,y){
  5271. return cljs.core.every_QMARK_.call(null,(function (p1__2601_SHARP_){
  5272. var and__3574__auto____2648 = p1__2601_SHARP_.call(null,x);
  5273.  
  5274. if(cljs.core.truth_(and__3574__auto____2648))
  5275. {return p1__2601_SHARP_.call(null,y);
  5276. } else
  5277. {return and__3574__auto____2648;
  5278. }
  5279. }),ps__2647);
  5280. });
  5281. var epn__2685 = (function (x,y,z){
  5282. return cljs.core.every_QMARK_.call(null,(function (p1__2602_SHARP_){
  5283. var and__3574__auto____2649 = p1__2602_SHARP_.call(null,x);
  5284.  
  5285. if(cljs.core.truth_(and__3574__auto____2649))
  5286. {var and__3574__auto____2650 = p1__2602_SHARP_.call(null,y);
  5287.  
  5288. if(cljs.core.truth_(and__3574__auto____2650))
  5289. {return p1__2602_SHARP_.call(null,z);
  5290. } else
  5291. {return and__3574__auto____2650;
  5292. }
  5293. } else
  5294. {return and__3574__auto____2649;
  5295. }
  5296. }),ps__2647);
  5297. });
  5298. var epn__2686 = (function() {
  5299. var G__2688__delegate = function (x,y,z,args){
  5300. return cljs.core.boolean$.call(null,(function (){var and__3574__auto____2651 = epn.call(null,x,y,z);
  5301.  
  5302. if(cljs.core.truth_(and__3574__auto____2651))
  5303. {return cljs.core.every_QMARK_.call(null,(function (p1__2603_SHARP_){
  5304. return cljs.core.every_QMARK_.call(null,p1__2603_SHARP_,args);
  5305. }),ps__2647);
  5306. } else
  5307. {return and__3574__auto____2651;
  5308. }
  5309. })());
  5310. };
  5311. var G__2688 = function (x,y,z,var_args){
  5312. var args = null;
  5313. if (goog.isDef(var_args)) {
  5314.   args = cljs.core.array_seq(Array.prototype.slice.call(arguments, 3),0);
  5315. }
  5316. return G__2688__delegate.call(this, x, y, z, args);
  5317. };
  5318. G__2688.cljs$lang$maxFixedArity = 3;
  5319. G__2688.cljs$lang$applyTo = (function (arglist__2689){
  5320. var x = cljs.core.first(arglist__2689);
  5321. var y = cljs.core.first(cljs.core.next(arglist__2689));
  5322. var z = cljs.core.first(cljs.core.next(cljs.core.next(arglist__2689)));
  5323. var args = cljs.core.rest(cljs.core.next(cljs.core.next(arglist__2689)));
  5324. return G__2688__delegate.call(this, x, y, z, args);
  5325. });
  5326. return G__2688;
  5327. })()
  5328. ;
  5329. epn = function(x,y,z,var_args){
  5330. var args = var_args;
  5331. switch(arguments.length){
  5332. case  0 :
  5333. return epn__2682.call(this);
  5334. case  1 :
  5335. return epn__2683.call(this,x);
  5336. case  2 :
  5337. return epn__2684.call(this,x,y);
  5338. case  3 :
  5339. return epn__2685.call(this,x,y,z);
  5340. default:
  5341. return epn__2686.apply(this,arguments);
  5342. }
  5343. throw('Invalid arity: ' + arguments.length);
  5344. };
  5345. epn.cljs$lang$maxFixedArity = 3;
  5346. epn.cljs$lang$applyTo = epn__2686.cljs$lang$applyTo;
  5347. return epn;
  5348. })()
  5349. };
  5350. var G__2681 = function (p1,p2,p3,var_args){
  5351. var ps = null;
  5352. if (goog.isDef(var_args)) {
  5353.   ps = cljs.core.array_seq(Array.prototype.slice.call(arguments, 3),0);
  5354. }
  5355. return G__2681__delegate.call(this, p1, p2, p3, ps);
  5356. };
  5357. G__2681.cljs$lang$maxFixedArity = 3;
  5358. G__2681.cljs$lang$applyTo = (function (arglist__2690){
  5359. var p1 = cljs.core.first(arglist__2690);
  5360. var p2 = cljs.core.first(cljs.core.next(arglist__2690));
  5361. var p3 = cljs.core.first(cljs.core.next(cljs.core.next(arglist__2690)));
  5362. var ps = cljs.core.rest(cljs.core.next(cljs.core.next(arglist__2690)));
  5363. return G__2681__delegate.call(this, p1, p2, p3, ps);
  5364. });
  5365. return G__2681;
  5366. })()
  5367. ;
  5368. every_pred = function(p1,p2,p3,var_args){
  5369. var ps = var_args;
  5370. switch(arguments.length){
  5371. case  1 :
  5372. return every_pred__2652.call(this,p1);
  5373. case  2 :
  5374. return every_pred__2653.call(this,p1,p2);
  5375. case  3 :
  5376. return every_pred__2654.call(this,p1,p2,p3);
  5377. default:
  5378. return every_pred__2655.apply(this,arguments);
  5379. }
  5380. throw('Invalid arity: ' + arguments.length);
  5381. };
  5382. every_pred.cljs$lang$maxFixedArity = 3;
  5383. every_pred.cljs$lang$applyTo = every_pred__2655.cljs$lang$applyTo;
  5384. return every_pred;
  5385. })()
  5386. ;
  5387. /**
  5388. * Takes a set of predicates and returns a function f that returns the first logical true value
  5389. * returned by one of its composing predicates against any of its arguments, else it returns
  5390. * logical false. Note that f is short-circuiting in that it will stop execution on the first
  5391. * argument that triggers a logical true result against the original predicates.
  5392. * @param {...*} var_args
  5393. */
  5394. cljs.core.some_fn = (function() {
  5395. var some_fn = null;
  5396. var some_fn__2730 = (function (p){
  5397. return (function() {
  5398. var sp1 = null;
  5399. var sp1__2735 = (function (){
  5400. return null;
  5401. });
  5402. var sp1__2736 = (function (x){
  5403. return p.call(null,x);
  5404. });
  5405. var sp1__2737 = (function (x,y){
  5406. var or__3576__auto____2692 = p.call(null,x);
  5407.  
  5408. if(cljs.core.truth_(or__3576__auto____2692))
  5409. {return or__3576__auto____2692;
  5410. } else
  5411. {return p.call(null,y);
  5412. }
  5413. });
  5414. var sp1__2738 = (function (x,y,z){
  5415. var or__3576__auto____2693 = p.call(null,x);
  5416.  
  5417. if(cljs.core.truth_(or__3576__auto____2693))
  5418. {return or__3576__auto____2693;
  5419. } else
  5420. {var or__3576__auto____2694 = p.call(null,y);
  5421.  
  5422. if(cljs.core.truth_(or__3576__auto____2694))
  5423. {return or__3576__auto____2694;
  5424. } else
  5425. {return p.call(null,z);
  5426. }
  5427. }
  5428. });
  5429. var sp1__2739 = (function() {
  5430. var G__2741__delegate = function (x,y,z,args){
  5431. var or__3576__auto____2695 = sp1.call(null,x,y,z);
  5432.  
  5433. if(cljs.core.truth_(or__3576__auto____2695))
  5434. {return or__3576__auto____2695;
  5435. } else
  5436. {return cljs.core.some.call(null,p,args);
  5437. }
  5438. };
  5439. var G__2741 = function (x,y,z,var_args){
  5440. var args = null;
  5441. if (goog.isDef(var_args)) {
  5442.   args = cljs.core.array_seq(Array.prototype.slice.call(arguments, 3),0);
  5443. }
  5444. return G__2741__delegate.call(this, x, y, z, args);
  5445. };
  5446. G__2741.cljs$lang$maxFixedArity = 3;
  5447. G__2741.cljs$lang$applyTo = (function (arglist__2742){
  5448. var x = cljs.core.first(arglist__2742);
  5449. var y = cljs.core.first(cljs.core.next(arglist__2742));
  5450. var z = cljs.core.first(cljs.core.next(cljs.core.next(arglist__2742)));
  5451. var args = cljs.core.rest(cljs.core.next(cljs.core.next(arglist__2742)));
  5452. return G__2741__delegate.call(this, x, y, z, args);
  5453. });
  5454. return G__2741;
  5455. })()
  5456. ;
  5457. sp1 = function(x,y,z,var_args){
  5458. var args = var_args;
  5459. switch(arguments.length){
  5460. case  0 :
  5461. return sp1__2735.call(this);
  5462. case  1 :
  5463. return sp1__2736.call(this,x);
  5464. case  2 :
  5465. return sp1__2737.call(this,x,y);
  5466. case  3 :
  5467. return sp1__2738.call(this,x,y,z);
  5468. default:
  5469. return sp1__2739.apply(this,arguments);
  5470. }
  5471. throw('Invalid arity: ' + arguments.length);
  5472. };
  5473. sp1.cljs$lang$maxFixedArity = 3;
  5474. sp1.cljs$lang$applyTo = sp1__2739.cljs$lang$applyTo;
  5475. return sp1;
  5476. })()
  5477. });
  5478. var some_fn__2731 = (function (p1,p2){
  5479. return (function() {
  5480. var sp2 = null;
  5481. var sp2__2743 = (function (){
  5482. return null;
  5483. });
  5484. var sp2__2744 = (function (x){
  5485. var or__3576__auto____2696 = p1.call(null,x);
  5486.  
  5487. if(cljs.core.truth_(or__3576__auto____2696))
  5488. {return or__3576__auto____2696;
  5489. } else
  5490. {return p2.call(null,x);
  5491. }
  5492. });
  5493. var sp2__2745 = (function (x,y){
  5494. var or__3576__auto____2697 = p1.call(null,x);
  5495.  
  5496. if(cljs.core.truth_(or__3576__auto____2697))
  5497. {return or__3576__auto____2697;
  5498. } else
  5499. {var or__3576__auto____2698 = p1.call(null,y);
  5500.  
  5501. if(cljs.core.truth_(or__3576__auto____2698))
  5502. {return or__3576__auto____2698;
  5503. } else
  5504. {var or__3576__auto____2699 = p2.call(null,x);
  5505.  
  5506. if(cljs.core.truth_(or__3576__auto____2699))
  5507. {return or__3576__auto____2699;
  5508. } else
  5509. {return p2.call(null,y);
  5510. }
  5511. }
  5512. }
  5513. });
  5514. var sp2__2746 = (function (x,y,z){
  5515. var or__3576__auto____2700 = p1.call(null,x);
  5516.  
  5517. if(cljs.core.truth_(or__3576__auto____2700))
  5518. {return or__3576__auto____2700;
  5519. } else
  5520. {var or__3576__auto____2701 = p1.call(null,y);
  5521.  
  5522. if(cljs.core.truth_(or__3576__auto____2701))
  5523. {return or__3576__auto____2701;
  5524. } else
  5525. {var or__3576__auto____2702 = p1.call(null,z);
  5526.  
  5527. if(cljs.core.truth_(or__3576__auto____2702))
  5528. {return or__3576__auto____2702;
  5529. } else
  5530. {var or__3576__auto____2703 = p2.call(null,x);
  5531.  
  5532. if(cljs.core.truth_(or__3576__auto____2703))
  5533. {return or__3576__auto____2703;
  5534. } else
  5535. {var or__3576__auto____2704 = p2.call(null,y);
  5536.  
  5537. if(cljs.core.truth_(or__3576__auto____2704))
  5538. {return or__3576__auto____2704;
  5539. } else
  5540. {return p2.call(null,z);
  5541. }
  5542. }
  5543. }
  5544. }
  5545. }
  5546. });
  5547. var sp2__2747 = (function() {
  5548. var G__2749__delegate = function (x,y,z,args){
  5549. var or__3576__auto____2705 = sp2.call(null,x,y,z);
  5550.  
  5551. if(cljs.core.truth_(or__3576__auto____2705))
  5552. {return or__3576__auto____2705;
  5553. } else
  5554. {return cljs.core.some.call(null,(function (p1__2608_SHARP_){
  5555. var or__3576__auto____2706 = p1.call(null,p1__2608_SHARP_);
  5556.  
  5557. if(cljs.core.truth_(or__3576__auto____2706))
  5558. {return or__3576__auto____2706;
  5559. } else
  5560. {return p2.call(null,p1__2608_SHARP_);
  5561. }
  5562. }),args);
  5563. }
  5564. };
  5565. var G__2749 = function (x,y,z,var_args){
  5566. var args = null;
  5567. if (goog.isDef(var_args)) {
  5568.   args = cljs.core.array_seq(Array.prototype.slice.call(arguments, 3),0);
  5569. }
  5570. return G__2749__delegate.call(this, x, y, z, args);
  5571. };
  5572. G__2749.cljs$lang$maxFixedArity = 3;
  5573. G__2749.cljs$lang$applyTo = (function (arglist__2750){
  5574. var x = cljs.core.first(arglist__2750);
  5575. var y = cljs.core.first(cljs.core.next(arglist__2750));
  5576. var z = cljs.core.first(cljs.core.next(cljs.core.next(arglist__2750)));
  5577. var args = cljs.core.rest(cljs.core.next(cljs.core.next(arglist__2750)));
  5578. return G__2749__delegate.call(this, x, y, z, args);
  5579. });
  5580. return G__2749;
  5581. })()
  5582. ;
  5583. sp2 = function(x,y,z,var_args){
  5584. var args = var_args;
  5585. switch(arguments.length){
  5586. case  0 :
  5587. return sp2__2743.call(this);
  5588. case  1 :
  5589. return sp2__2744.call(this,x);
  5590. case  2 :
  5591. return sp2__2745.call(this,x,y);
  5592. case  3 :
  5593. return sp2__2746.call(this,x,y,z);
  5594. default:
  5595. return sp2__2747.apply(this,arguments);
  5596. }
  5597. throw('Invalid arity: ' + arguments.length);
  5598. };
  5599. sp2.cljs$lang$maxFixedArity = 3;
  5600. sp2.cljs$lang$applyTo = sp2__2747.cljs$lang$applyTo;
  5601. return sp2;
  5602. })()
  5603. });
  5604. var some_fn__2732 = (function (p1,p2,p3){
  5605. return (function() {
  5606. var sp3 = null;
  5607. var sp3__2751 = (function (){
  5608. return null;
  5609. });
  5610. var sp3__2752 = (function (x){
  5611. var or__3576__auto____2707 = p1.call(null,x);
  5612.  
  5613. if(cljs.core.truth_(or__3576__auto____2707))
  5614. {return or__3576__auto____2707;
  5615. } else
  5616. {var or__3576__auto____2708 = p2.call(null,x);
  5617.  
  5618. if(cljs.core.truth_(or__3576__auto____2708))
  5619. {return or__3576__auto____2708;
  5620. } else
  5621. {return p3.call(null,x);
  5622. }
  5623. }
  5624. });
  5625. var sp3__2753 = (function (x,y){
  5626. var or__3576__auto____2709 = p1.call(null,x);
  5627.  
  5628. if(cljs.core.truth_(or__3576__auto____2709))
  5629. {return or__3576__auto____2709;
  5630. } else
  5631. {var or__3576__auto____2710 = p2.call(null,x);
  5632.  
  5633. if(cljs.core.truth_(or__3576__auto____2710))
  5634. {return or__3576__auto____2710;
  5635. } else
  5636. {var or__3576__auto____2711 = p3.call(null,x);
  5637.  
  5638. if(cljs.core.truth_(or__3576__auto____2711))
  5639. {return or__3576__auto____2711;
  5640. } else
  5641. {var or__3576__auto____2712 = p1.call(null,y);
  5642.  
  5643. if(cljs.core.truth_(or__3576__auto____2712))
  5644. {return or__3576__auto____2712;
  5645. } else
  5646. {var or__3576__auto____2713 = p2.call(null,y);
  5647.  
  5648. if(cljs.core.truth_(or__3576__auto____2713))
  5649. {return or__3576__auto____2713;
  5650. } else
  5651. {return p3.call(null,y);
  5652. }
  5653. }
  5654. }
  5655. }
  5656. }
  5657. });
  5658. var sp3__2754 = (function (x,y,z){
  5659. var or__3576__auto____2714 = p1.call(null,x);
  5660.  
  5661. if(cljs.core.truth_(or__3576__auto____2714))
  5662. {return or__3576__auto____2714;
  5663. } else
  5664. {var or__3576__auto____2715 = p2.call(null,x);
  5665.  
  5666. if(cljs.core.truth_(or__3576__auto____2715))
  5667. {return or__3576__auto____2715;
  5668. } else
  5669. {var or__3576__auto____2716 = p3.call(null,x);
  5670.  
  5671. if(cljs.core.truth_(or__3576__auto____2716))
  5672. {return or__3576__auto____2716;
  5673. } else
  5674. {var or__3576__auto____2717 = p1.call(null,y);
  5675.  
  5676. if(cljs.core.truth_(or__3576__auto____2717))
  5677. {return or__3576__auto____2717;
  5678. } else
  5679. {var or__3576__auto____2718 = p2.call(null,y);
  5680.  
  5681. if(cljs.core.truth_(or__3576__auto____2718))
  5682. {return or__3576__auto____2718;
  5683. } else
  5684. {var or__3576__auto____2719 = p3.call(null,y);
  5685.  
  5686. if(cljs.core.truth_(or__3576__auto____2719))
  5687. {return or__3576__auto____2719;
  5688. } else
  5689. {var or__3576__auto____2720 = p1.call(null,z);
  5690.  
  5691. if(cljs.core.truth_(or__3576__auto____2720))
  5692. {return or__3576__auto____2720;
  5693. } else
  5694. {var or__3576__auto____2721 = p2.call(null,z);
  5695.  
  5696. if(cljs.core.truth_(or__3576__auto____2721))
  5697. {return or__3576__auto____2721;
  5698. } else
  5699. {return p3.call(null,z);
  5700. }
  5701. }
  5702. }
  5703. }
  5704. }
  5705. }
  5706. }
  5707. }
  5708. });
  5709. var sp3__2755 = (function() {
  5710. var G__2757__delegate = function (x,y,z,args){
  5711. var or__3576__auto____2722 = sp3.call(null,x,y,z);
  5712.  
  5713. if(cljs.core.truth_(or__3576__auto____2722))
  5714. {return or__3576__auto____2722;
  5715. } else
  5716. {return cljs.core.some.call(null,(function (p1__2609_SHARP_){
  5717. var or__3576__auto____2723 = p1.call(null,p1__2609_SHARP_);
  5718.  
  5719. if(cljs.core.truth_(or__3576__auto____2723))
  5720. {return or__3576__auto____2723;
  5721. } else
  5722. {var or__3576__auto____2724 = p2.call(null,p1__2609_SHARP_);
  5723.  
  5724. if(cljs.core.truth_(or__3576__auto____2724))
  5725. {return or__3576__auto____2724;
  5726. } else
  5727. {return p3.call(null,p1__2609_SHARP_);
  5728. }
  5729. }
  5730. }),args);
  5731. }
  5732. };
  5733. var G__2757 = function (x,y,z,var_args){
  5734. var args = null;
  5735. if (goog.isDef(var_args)) {
  5736.   args = cljs.core.array_seq(Array.prototype.slice.call(arguments, 3),0);
  5737. }
  5738. return G__2757__delegate.call(this, x, y, z, args);
  5739. };
  5740. G__2757.cljs$lang$maxFixedArity = 3;
  5741. G__2757.cljs$lang$applyTo = (function (arglist__2758){
  5742. var x = cljs.core.first(arglist__2758);
  5743. var y = cljs.core.first(cljs.core.next(arglist__2758));
  5744. var z = cljs.core.first(cljs.core.next(cljs.core.next(arglist__2758)));
  5745. var args = cljs.core.rest(cljs.core.next(cljs.core.next(arglist__2758)));
  5746. return G__2757__delegate.call(this, x, y, z, args);
  5747. });
  5748. return G__2757;
  5749. })()
  5750. ;
  5751. sp3 = function(x,y,z,var_args){
  5752. var args = var_args;
  5753. switch(arguments.length){
  5754. case  0 :
  5755. return sp3__2751.call(this);
  5756. case  1 :
  5757. return sp3__2752.call(this,x);
  5758. case  2 :
  5759. return sp3__2753.call(this,x,y);
  5760. case  3 :
  5761. return sp3__2754.call(this,x,y,z);
  5762. default:
  5763. return sp3__2755.apply(this,arguments);
  5764. }
  5765. throw('Invalid arity: ' + arguments.length);
  5766. };
  5767. sp3.cljs$lang$maxFixedArity = 3;
  5768. sp3.cljs$lang$applyTo = sp3__2755.cljs$lang$applyTo;
  5769. return sp3;
  5770. })()
  5771. });
  5772. var some_fn__2733 = (function() {
  5773. var G__2759__delegate = function (p1,p2,p3,ps){
  5774. var ps__2725 = cljs.core.list_STAR_.call(null,p1,p2,p3,ps);
  5775.  
  5776. return (function() {
  5777. var spn = null;
  5778. var spn__2760 = (function (){
  5779. return null;
  5780. });
  5781. var spn__2761 = (function (x){
  5782. return cljs.core.some.call(null,(function (p1__2610_SHARP_){
  5783. return p1__2610_SHARP_.call(null,x);
  5784. }),ps__2725);
  5785. });
  5786. var spn__2762 = (function (x,y){
  5787. return cljs.core.some.call(null,(function (p1__2611_SHARP_){
  5788. var or__3576__auto____2726 = p1__2611_SHARP_.call(null,x);
  5789.  
  5790. if(cljs.core.truth_(or__3576__auto____2726))
  5791. {return or__3576__auto____2726;
  5792. } else
  5793. {return p1__2611_SHARP_.call(null,y);
  5794. }
  5795. }),ps__2725);
  5796. });
  5797. var spn__2763 = (function (x,y,z){
  5798. return cljs.core.some.call(null,(function (p1__2612_SHARP_){
  5799. var or__3576__auto____2727 = p1__2612_SHARP_.call(null,x);
  5800.  
  5801. if(cljs.core.truth_(or__3576__auto____2727))
  5802. {return or__3576__auto____2727;
  5803. } else
  5804. {var or__3576__auto____2728 = p1__2612_SHARP_.call(null,y);
  5805.  
  5806. if(cljs.core.truth_(or__3576__auto____2728))
  5807. {return or__3576__auto____2728;
  5808. } else
  5809. {return p1__2612_SHARP_.call(null,z);
  5810. }
  5811. }
  5812. }),ps__2725);
  5813. });
  5814. var spn__2764 = (function() {
  5815. var G__2766__delegate = function (x,y,z,args){
  5816. var or__3576__auto____2729 = spn.call(null,x,y,z);
  5817.  
  5818. if(cljs.core.truth_(or__3576__auto____2729))
  5819. {return or__3576__auto____2729;
  5820. } else
  5821. {return cljs.core.some.call(null,(function (p1__2613_SHARP_){
  5822. return cljs.core.some.call(null,p1__2613_SHARP_,args);
  5823. }),ps__2725);
  5824. }
  5825. };
  5826. var G__2766 = function (x,y,z,var_args){
  5827. var args = null;
  5828. if (goog.isDef(var_args)) {
  5829.   args = cljs.core.array_seq(Array.prototype.slice.call(arguments, 3),0);
  5830. }
  5831. return G__2766__delegate.call(this, x, y, z, args);
  5832. };
  5833. G__2766.cljs$lang$maxFixedArity = 3;
  5834. G__2766.cljs$lang$applyTo = (function (arglist__2767){
  5835. var x = cljs.core.first(arglist__2767);
  5836. var y = cljs.core.first(cljs.core.next(arglist__2767));
  5837. var z = cljs.core.first(cljs.core.next(cljs.core.next(arglist__2767)));
  5838. var args = cljs.core.rest(cljs.core.next(cljs.core.next(arglist__2767)));
  5839. return G__2766__delegate.call(this, x, y, z, args);
  5840. });
  5841. return G__2766;
  5842. })()
  5843. ;
  5844. spn = function(x,y,z,var_args){
  5845. var args = var_args;
  5846. switch(arguments.length){
  5847. case  0 :
  5848. return spn__2760.call(this);
  5849. case  1 :
  5850. return spn__2761.call(this,x);
  5851. case  2 :
  5852. return spn__2762.call(this,x,y);
  5853. case  3 :
  5854. return spn__2763.call(this,x,y,z);
  5855. default:
  5856. return spn__2764.apply(this,arguments);
  5857. }
  5858. throw('Invalid arity: ' + arguments.length);
  5859. };
  5860. spn.cljs$lang$maxFixedArity = 3;
  5861. spn.cljs$lang$applyTo = spn__2764.cljs$lang$applyTo;
  5862. return spn;
  5863. })()
  5864. };
  5865. var G__2759 = function (p1,p2,p3,var_args){
  5866. var ps = null;
  5867. if (goog.isDef(var_args)) {
  5868.   ps = cljs.core.array_seq(Array.prototype.slice.call(arguments, 3),0);
  5869. }
  5870. return G__2759__delegate.call(this, p1, p2, p3, ps);
  5871. };
  5872. G__2759.cljs$lang$maxFixedArity = 3;
  5873. G__2759.cljs$lang$applyTo = (function (arglist__2768){
  5874. var p1 = cljs.core.first(arglist__2768);
  5875. var p2 = cljs.core.first(cljs.core.next(arglist__2768));
  5876. var p3 = cljs.core.first(cljs.core.next(cljs.core.next(arglist__2768)));
  5877. var ps = cljs.core.rest(cljs.core.next(cljs.core.next(arglist__2768)));
  5878. return G__2759__delegate.call(this, p1, p2, p3, ps);
  5879. });
  5880. return G__2759;
  5881. })()
  5882. ;
  5883. some_fn = function(p1,p2,p3,var_args){
  5884. var ps = var_args;
  5885. switch(arguments.length){
  5886. case  1 :
  5887. return some_fn__2730.call(this,p1);
  5888. case  2 :
  5889. return some_fn__2731.call(this,p1,p2);
  5890. case  3 :
  5891. return some_fn__2732.call(this,p1,p2,p3);
  5892. default:
  5893. return some_fn__2733.apply(this,arguments);
  5894. }
  5895. throw('Invalid arity: ' + arguments.length);
  5896. };
  5897. some_fn.cljs$lang$maxFixedArity = 3;
  5898. some_fn.cljs$lang$applyTo = some_fn__2733.cljs$lang$applyTo;
  5899. return some_fn;
  5900. })()
  5901. ;
  5902. /**
  5903. * Returns a lazy sequence consisting of the result of applying f to the
  5904. * set of first items of each coll, followed by applying f to the set
  5905. * of second items in each coll, until any one of the colls is
  5906. * exhausted.  Any remaining items in other colls are ignored. Function
  5907. * f should accept number-of-colls arguments.
  5908. * @param {...*} var_args
  5909. */
  5910. cljs.core.map = (function() {
  5911. var map = null;
  5912. var map__2781 = (function (f,coll){
  5913. return (new cljs.core.LazySeq(null,false,(function (){
  5914. var temp__3726__auto____2769 = cljs.core.seq.call(null,coll);
  5915.  
  5916. if(cljs.core.truth_(temp__3726__auto____2769))
  5917. {var s__2770 = temp__3726__auto____2769;
  5918.  
  5919. return cljs.core.cons.call(null,f.call(null,cljs.core.first.call(null,s__2770)),map.call(null,f,cljs.core.rest.call(null,s__2770)));
  5920. } else
  5921. {return null;
  5922. }
  5923. })));
  5924. });
  5925. var map__2782 = (function (f,c1,c2){
  5926. return (new cljs.core.LazySeq(null,false,(function (){
  5927. var s1__2771 = cljs.core.seq.call(null,c1);
  5928. var s2__2772 = cljs.core.seq.call(null,c2);
  5929.  
  5930. if(cljs.core.truth_((function (){var and__3574__auto____2773 = s1__2771;
  5931.  
  5932. if(cljs.core.truth_(and__3574__auto____2773))
  5933. {return s2__2772;
  5934. } else
  5935. {return and__3574__auto____2773;
  5936. }
  5937. })()))
  5938. {return cljs.core.cons.call(null,f.call(null,cljs.core.first.call(null,s1__2771),cljs.core.first.call(null,s2__2772)),map.call(null,f,cljs.core.rest.call(null,s1__2771),cljs.core.rest.call(null,s2__2772)));
  5939. } else
  5940. {return null;
  5941. }
  5942. })));
  5943. });
  5944. var map__2783 = (function (f,c1,c2,c3){
  5945. return (new cljs.core.LazySeq(null,false,(function (){
  5946. var s1__2774 = cljs.core.seq.call(null,c1);
  5947. var s2__2775 = cljs.core.seq.call(null,c2);
  5948. var s3__2776 = cljs.core.seq.call(null,c3);
  5949.  
  5950. if(cljs.core.truth_((function (){var and__3574__auto____2777 = s1__2774;
  5951.  
  5952. if(cljs.core.truth_(and__3574__auto____2777))
  5953. {var and__3574__auto____2778 = s2__2775;
  5954.  
  5955. if(cljs.core.truth_(and__3574__auto____2778))
  5956. {return s3__2776;
  5957. } else
  5958. {return and__3574__auto____2778;
  5959. }
  5960. } else
  5961. {return and__3574__auto____2777;
  5962. }
  5963. })()))
  5964. {return cljs.core.cons.call(null,f.call(null,cljs.core.first.call(null,s1__2774),cljs.core.first.call(null,s2__2775),cljs.core.first.call(null,s3__2776)),map.call(null,f,cljs.core.rest.call(null,s1__2774),cljs.core.rest.call(null,s2__2775),cljs.core.rest.call(null,s3__2776)));
  5965. } else
  5966. {return null;
  5967. }
  5968. })));
  5969. });
  5970. var map__2784 = (function() {
  5971. var G__2786__delegate = function (f,c1,c2,c3,colls){
  5972. var step__2780 = (function step(cs){
  5973. return (new cljs.core.LazySeq(null,false,(function (){
  5974. var ss__2779 = map.call(null,cljs.core.seq,cs);
  5975.  
  5976. if(cljs.core.truth_(cljs.core.every_QMARK_.call(null,cljs.core.identity,ss__2779)))
  5977. {return cljs.core.cons.call(null,map.call(null,cljs.core.first,ss__2779),step.call(null,map.call(null,cljs.core.rest,ss__2779)));
  5978. } else
  5979. {return null;
  5980. }
  5981. })));
  5982. });
  5983.  
  5984. return map.call(null,(function (p1__2691_SHARP_){
  5985. return cljs.core.apply.call(null,f,p1__2691_SHARP_);
  5986. }),step__2780.call(null,cljs.core.conj.call(null,colls,c3,c2,c1)));
  5987. };
  5988. var G__2786 = function (f,c1,c2,c3,var_args){
  5989. var colls = null;
  5990. if (goog.isDef(var_args)) {
  5991.   colls = cljs.core.array_seq(Array.prototype.slice.call(arguments, 4),0);
  5992. }
  5993. return G__2786__delegate.call(this, f, c1, c2, c3, colls);
  5994. };
  5995. G__2786.cljs$lang$maxFixedArity = 4;
  5996. G__2786.cljs$lang$applyTo = (function (arglist__2787){
  5997. var f = cljs.core.first(arglist__2787);
  5998. var c1 = cljs.core.first(cljs.core.next(arglist__2787));
  5999. var c2 = cljs.core.first(cljs.core.next(cljs.core.next(arglist__2787)));
  6000. var c3 = cljs.core.first(cljs.core.next(cljs.core.next(cljs.core.next(arglist__2787))));
  6001. var colls = cljs.core.rest(cljs.core.next(cljs.core.next(cljs.core.next(arglist__2787))));
  6002. return G__2786__delegate.call(this, f, c1, c2, c3, colls);
  6003. });
  6004. return G__2786;
  6005. })()
  6006. ;
  6007. map = function(f,c1,c2,c3,var_args){
  6008. var colls = var_args;
  6009. switch(arguments.length){
  6010. case  2 :
  6011. return map__2781.call(this,f,c1);
  6012. case  3 :
  6013. return map__2782.call(this,f,c1,c2);
  6014. case  4 :
  6015. return map__2783.call(this,f,c1,c2,c3);
  6016. default:
  6017. return map__2784.apply(this,arguments);
  6018. }
  6019. throw('Invalid arity: ' + arguments.length);
  6020. };
  6021. map.cljs$lang$maxFixedArity = 4;
  6022. map.cljs$lang$applyTo = map__2784.cljs$lang$applyTo;
  6023. return map;
  6024. })()
  6025. ;
  6026. /**
  6027. * Returns a lazy sequence of the first n items in coll, or all items if
  6028. * there are fewer than n.
  6029. */
  6030. cljs.core.take = (function take(n,coll){
  6031. return (new cljs.core.LazySeq(null,false,(function (){
  6032. if(cljs.core.truth_(cljs.core.pos_QMARK_.call(null,n)))
  6033. {var temp__3726__auto____2788 = cljs.core.seq.call(null,coll);
  6034.  
  6035. if(cljs.core.truth_(temp__3726__auto____2788))
  6036. {var s__2789 = temp__3726__auto____2788;
  6037.  
  6038. return cljs.core.cons.call(null,cljs.core.first.call(null,s__2789),take.call(null,cljs.core.dec.call(null,n),cljs.core.rest.call(null,s__2789)));
  6039. } else
  6040. {return null;
  6041. }
  6042. } else
  6043. {return null;
  6044. }
  6045. })));
  6046. });
  6047. /**
  6048. * Returns a lazy sequence of all but the first n items in coll.
  6049. */
  6050. cljs.core.drop = (function drop(n,coll){
  6051. var step__2792 = (function (n,coll){
  6052. var G__2793,G__2794;G__2793=G__2794=new Object();
  6053. while(G__2793===G__2794){
  6054. G__2793=(function(continue_val){
  6055. var s__2790 = cljs.core.seq.call(null,coll);
  6056.  
  6057. if(cljs.core.truth_((function (){var and__3574__auto____2791 = cljs.core.pos_QMARK_.call(null,n);
  6058.  
  6059. if(cljs.core.truth_(and__3574__auto____2791))
  6060. {return s__2790;
  6061. } else
  6062. {return and__3574__auto____2791;
  6063. }
  6064. })()))
  6065. {{
  6066. var G__2795 = cljs.core.dec.call(null,n);
  6067. var G__2796 = cljs.core.rest.call(null,s__2790);
  6068. n = G__2795;
  6069. coll = G__2796;
  6070. return continue_val;
  6071. }
  6072. } else
  6073. {return s__2790;
  6074. }
  6075. })(G__2794);}
  6076. return G__2793;
  6077. });
  6078.  
  6079. return (new cljs.core.LazySeq(null,false,(function (){
  6080. return step__2792.call(null,n,coll);
  6081. })));
  6082. });
  6083. /**
  6084. * Return a lazy sequence of all but the last n (default 1) items in coll
  6085. */
  6086. cljs.core.drop_last = (function() {
  6087. var drop_last = null;
  6088. var drop_last__2797 = (function (s){
  6089. return drop_last.call(null,1,s);
  6090. });
  6091. var drop_last__2798 = (function (n,s){
  6092. return cljs.core.map.call(null,(function (x,_){
  6093. return x;
  6094. }),s,cljs.core.drop.call(null,n,s));
  6095. });
  6096. drop_last = function(n,s){
  6097. switch(arguments.length){
  6098. case  1 :
  6099. return drop_last__2797.call(this,n);
  6100. case  2 :
  6101. return drop_last__2798.call(this,n,s);
  6102. }
  6103. throw('Invalid arity: ' + arguments.length);
  6104. };
  6105. return drop_last;
  6106. })()
  6107. ;
  6108. /**
  6109. * Returns a seq of the last n items in coll.  Depending on the type
  6110. * of coll may be no better than linear time.  For vectors, see also subvec.
  6111. */
  6112. cljs.core.take_last = (function take_last(n,coll){
  6113. var s__2800 = cljs.core.seq.call(null,coll);
  6114. var lead__2801 = cljs.core.seq.call(null,cljs.core.drop.call(null,n,coll));
  6115.  
  6116. var G__2802,G__2803;G__2802=G__2803=new Object();
  6117. while(G__2802===G__2803){
  6118. G__2802=(function(continue_val){
  6119. if(cljs.core.truth_(lead__2801))
  6120. {{
  6121. var G__2804 = cljs.core.next.call(null,s__2800);
  6122. var G__2805 = cljs.core.next.call(null,lead__2801);
  6123. s__2800 = G__2804;
  6124. lead__2801 = G__2805;
  6125. return continue_val;
  6126. }
  6127. } else
  6128. {return s__2800;
  6129. }
  6130. })(G__2803);}
  6131. return G__2802;
  6132. });
  6133. /**
  6134. * Returns a lazy sequence of the items in coll starting from the first
  6135. * item for which (pred item) returns nil.
  6136. */
  6137. cljs.core.drop_while = (function drop_while(pred,coll){
  6138. var step__2808 = (function (pred,coll){
  6139. var G__2809,G__2810;G__2809=G__2810=new Object();
  6140. while(G__2809===G__2810){
  6141. G__2809=(function(continue_val){
  6142. var s__2806 = cljs.core.seq.call(null,coll);
  6143.  
  6144. if(cljs.core.truth_((function (){var and__3574__auto____2807 = s__2806;
  6145.  
  6146. if(cljs.core.truth_(and__3574__auto____2807))
  6147. {return pred.call(null,cljs.core.first.call(null,s__2806));
  6148. } else
  6149. {return and__3574__auto____2807;
  6150. }
  6151. })()))
  6152. {{
  6153. var G__2811 = pred;
  6154. var G__2812 = cljs.core.rest.call(null,s__2806);
  6155. pred = G__2811;
  6156. coll = G__2812;
  6157. return continue_val;
  6158. }
  6159. } else
  6160. {return s__2806;
  6161. }
  6162. })(G__2810);}
  6163. return G__2809;
  6164. });
  6165.  
  6166. return (new cljs.core.LazySeq(null,false,(function (){
  6167. return step__2808.call(null,pred,coll);
  6168. })));
  6169. });
  6170. /**
  6171. * Returns a lazy (infinite!) sequence of repetitions of the items in coll.
  6172. */
  6173. cljs.core.cycle = (function cycle(coll){
  6174. return (new cljs.core.LazySeq(null,false,(function (){
  6175. var temp__3726__auto____2813 = cljs.core.seq.call(null,coll);
  6176.  
  6177. if(cljs.core.truth_(temp__3726__auto____2813))
  6178. {var s__2814 = temp__3726__auto____2813;
  6179.  
  6180. return cljs.core.concat.call(null,s__2814,cycle.call(null,s__2814));
  6181. } else
  6182. {return null;
  6183. }
  6184. })));
  6185. });
  6186. /**
  6187. * Returns a vector of [(take n coll) (drop n coll)]
  6188. */
  6189. cljs.core.split_at = (function split_at(n,coll){
  6190. return cljs.core.Vector.fromArray([cljs.core.take.call(null,n,coll),cljs.core.drop.call(null,n,coll)]);
  6191. });
  6192. /**
  6193. * Returns a lazy (infinite!, or length n if supplied) sequence of xs.
  6194. */
  6195. cljs.core.repeat = (function() {
  6196. var repeat = null;
  6197. var repeat__2815 = (function (x){
  6198. return (new cljs.core.LazySeq(null,false,(function (){
  6199. return cljs.core.cons.call(null,x,repeat.call(null,x));
  6200. })));
  6201. });
  6202. var repeat__2816 = (function (n,x){
  6203. return cljs.core.take.call(null,n,repeat.call(null,x));
  6204. });
  6205. repeat = function(n,x){
  6206. switch(arguments.length){
  6207. case  1 :
  6208. return repeat__2815.call(this,n);
  6209. case  2 :
  6210. return repeat__2816.call(this,n,x);
  6211. }
  6212. throw('Invalid arity: ' + arguments.length);
  6213. };
  6214. return repeat;
  6215. })()
  6216. ;
  6217. /**
  6218. * Returns a lazy seq of n xs.
  6219. */
  6220. cljs.core.replicate = (function replicate(n,x){
  6221. return cljs.core.take.call(null,n,cljs.core.repeat.call(null,x));
  6222. });
  6223. /**
  6224. * Takes a function of no args, presumably with side effects, and
  6225. * returns an infinite (or length n if supplied) lazy sequence of calls
  6226. * to it
  6227. */
  6228. cljs.core.repeatedly = (function() {
  6229. var repeatedly = null;
  6230. var repeatedly__2818 = (function (f){
  6231. return (new cljs.core.LazySeq(null,false,(function (){
  6232. return cljs.core.cons.call(null,f.call(null),repeatedly.call(null,f));
  6233. })));
  6234. });
  6235. var repeatedly__2819 = (function (n,f){
  6236. return cljs.core.take.call(null,n,repeatedly.call(null,f));
  6237. });
  6238. repeatedly = function(n,f){
  6239. switch(arguments.length){
  6240. case  1 :
  6241. return repeatedly__2818.call(this,n);
  6242. case  2 :
  6243. return repeatedly__2819.call(this,n,f);
  6244. }
  6245. throw('Invalid arity: ' + arguments.length);
  6246. };
  6247. return repeatedly;
  6248. })()
  6249. ;
  6250. /**
  6251. * Returns a lazy sequence of x, (f x), (f (f x)) etc. f must be free of side-effects
  6252. */
  6253. cljs.core.iterate = (function iterate(f,x){
  6254. return cljs.core.cons.call(null,x,(new cljs.core.LazySeq(null,false,(function (){
  6255. return iterate.call(null,f,f.call(null,x));
  6256. }))));
  6257. });
  6258. /**
  6259. * Returns a lazy seq of the first item in each coll, then the second etc.
  6260. * @param {...*} var_args
  6261. */
  6262. cljs.core.interleave = (function() {
  6263. var interleave = null;
  6264. var interleave__2825 = (function (c1,c2){
  6265. return (new cljs.core.LazySeq(null,false,(function (){
  6266. var s1__2821 = cljs.core.seq.call(null,c1);
  6267. var s2__2822 = cljs.core.seq.call(null,c2);
  6268.  
  6269. if(cljs.core.truth_((function (){var and__3574__auto____2823 = s1__2821;
  6270.  
  6271. if(cljs.core.truth_(and__3574__auto____2823))
  6272. {return s2__2822;
  6273. } else
  6274. {return and__3574__auto____2823;
  6275. }
  6276. })()))
  6277. {return cljs.core.cons.call(null,cljs.core.first.call(null,s1__2821),cljs.core.cons.call(null,cljs.core.first.call(null,s2__2822),interleave.call(null,cljs.core.rest.call(null,s1__2821),cljs.core.rest.call(null,s2__2822))));
  6278. } else
  6279. {return null;
  6280. }
  6281. })));
  6282. });
  6283. var interleave__2826 = (function() {
  6284. var G__2828__delegate = function (c1,c2,colls){
  6285. return (new cljs.core.LazySeq(null,false,(function (){
  6286. var ss__2824 = cljs.core.map.call(null,cljs.core.seq,cljs.core.conj.call(null,colls,c2,c1));
  6287.  
  6288. if(cljs.core.truth_(cljs.core.every_QMARK_.call(null,cljs.core.identity,ss__2824)))
  6289. {return cljs.core.concat.call(null,cljs.core.map.call(null,cljs.core.first,ss__2824),cljs.core.apply.call(null,interleave,cljs.core.map.call(null,cljs.core.rest,ss__2824)));
  6290. } else
  6291. {return null;
  6292. }
  6293. })));
  6294. };
  6295. var G__2828 = function (c1,c2,var_args){
  6296. var colls = null;
  6297. if (goog.isDef(var_args)) {
  6298.   colls = cljs.core.array_seq(Array.prototype.slice.call(arguments, 2),0);
  6299. }
  6300. return G__2828__delegate.call(this, c1, c2, colls);
  6301. };
  6302. G__2828.cljs$lang$maxFixedArity = 2;
  6303. G__2828.cljs$lang$applyTo = (function (arglist__2829){
  6304. var c1 = cljs.core.first(arglist__2829);
  6305. var c2 = cljs.core.first(cljs.core.next(arglist__2829));
  6306. var colls = cljs.core.rest(cljs.core.next(arglist__2829));
  6307. return G__2828__delegate.call(this, c1, c2, colls);
  6308. });
  6309. return G__2828;
  6310. })()
  6311. ;
  6312. interleave = function(c1,c2,var_args){
  6313. var colls = var_args;
  6314. switch(arguments.length){
  6315. case  2 :
  6316. return interleave__2825.call(this,c1,c2);
  6317. default:
  6318. return interleave__2826.apply(this,arguments);
  6319. }
  6320. throw('Invalid arity: ' + arguments.length);
  6321. };
  6322. interleave.cljs$lang$maxFixedArity = 2;
  6323. interleave.cljs$lang$applyTo = interleave__2826.cljs$lang$applyTo;
  6324. return interleave;
  6325. })()
  6326. ;
  6327. /**
  6328. * Returns a lazy seq of the elements of coll separated by sep
  6329. */
  6330. cljs.core.interpose = (function interpose(sep,coll){
  6331. return cljs.core.drop.call(null,1,cljs.core.interleave.call(null,cljs.core.repeat.call(null,sep),coll));
  6332. });
  6333. /**
  6334. * Take a collection of collections, and return a lazy seq
  6335. * of items from the inner collection
  6336. */
  6337. cljs.core.flatten1 = (function flatten1(colls){
  6338. var cat__2832 = (function cat(coll,colls){
  6339. return (new cljs.core.LazySeq(null,false,(function (){
  6340. var temp__3723__auto____2830 = cljs.core.seq.call(null,coll);
  6341.  
  6342. if(cljs.core.truth_(temp__3723__auto____2830))
  6343. {var coll__2831 = temp__3723__auto____2830;
  6344.  
  6345. return cljs.core.cons.call(null,cljs.core.first.call(null,coll__2831),cat.call(null,cljs.core.rest.call(null,coll__2831),colls));
  6346. } else
  6347. {if(cljs.core.truth_(cljs.core.seq.call(null,colls)))
  6348. {return cat.call(null,cljs.core.first.call(null,colls),cljs.core.rest.call(null,colls));
  6349. } else
  6350. {return null;
  6351. }
  6352. }
  6353. })));
  6354. });
  6355.  
  6356. return cat__2832.call(null,null,colls);
  6357. });
  6358. /**
  6359. * Returns the result of applying concat to the result of applying map
  6360. * to f and colls.  Thus function f should return a collection.
  6361. * @param {...*} var_args
  6362. */
  6363. cljs.core.mapcat = (function() {
  6364. var mapcat = null;
  6365. var mapcat__2833 = (function (f,coll){
  6366. return cljs.core.flatten1.call(null,cljs.core.map.call(null,f,coll));
  6367. });
  6368. var mapcat__2834 = (function() {
  6369. var G__2836__delegate = function (f,coll,colls){
  6370. return cljs.core.flatten1.call(null,cljs.core.apply.call(null,cljs.core.map,f,coll,colls));
  6371. };
  6372. var G__2836 = function (f,coll,var_args){
  6373. var colls = null;
  6374. if (goog.isDef(var_args)) {
  6375.   colls = cljs.core.array_seq(Array.prototype.slice.call(arguments, 2),0);
  6376. }
  6377. return G__2836__delegate.call(this, f, coll, colls);
  6378. };
  6379. G__2836.cljs$lang$maxFixedArity = 2;
  6380. G__2836.cljs$lang$applyTo = (function (arglist__2837){
  6381. var f = cljs.core.first(arglist__2837);
  6382. var coll = cljs.core.first(cljs.core.next(arglist__2837));
  6383. var colls = cljs.core.rest(cljs.core.next(arglist__2837));
  6384. return G__2836__delegate.call(this, f, coll, colls);
  6385. });
  6386. return G__2836;
  6387. })()
  6388. ;
  6389. mapcat = function(f,coll,var_args){
  6390. var colls = var_args;
  6391. switch(arguments.length){
  6392. case  2 :
  6393. return mapcat__2833.call(this,f,coll);
  6394. default:
  6395. return mapcat__2834.apply(this,arguments);
  6396. }
  6397. throw('Invalid arity: ' + arguments.length);
  6398. };
  6399. mapcat.cljs$lang$maxFixedArity = 2;
  6400. mapcat.cljs$lang$applyTo = mapcat__2834.cljs$lang$applyTo;
  6401. return mapcat;
  6402. })()
  6403. ;
  6404. /**
  6405. * Returns a lazy sequence of the items in coll for which
  6406. * (pred item) returns true. pred must be free of side-effects.
  6407. */
  6408. cljs.core.filter = (function filter(pred,coll){
  6409. return (new cljs.core.LazySeq(null,false,(function (){
  6410. var temp__3726__auto____2838 = cljs.core.seq.call(null,coll);
  6411.  
  6412. if(cljs.core.truth_(temp__3726__auto____2838))
  6413. {var s__2839 = temp__3726__auto____2838;
  6414.  
  6415. var f__2840 = cljs.core.first.call(null,s__2839);
  6416. var r__2841 = cljs.core.rest.call(null,s__2839);
  6417.  
  6418. if(cljs.core.truth_(pred.call(null,f__2840)))
  6419. {return cljs.core.cons.call(null,f__2840,filter.call(null,pred,r__2841));
  6420. } else
  6421. {return filter.call(null,pred,r__2841);
  6422. }
  6423. } else
  6424. {return null;
  6425. }
  6426. })));
  6427. });
  6428. /**
  6429. * Returns a lazy sequence of the items in coll for which
  6430. * (pred item) returns false. pred must be free of side-effects.
  6431. */
  6432. cljs.core.remove = (function remove(pred,coll){
  6433. return cljs.core.filter.call(null,cljs.core.complement.call(null,pred),coll);
  6434. });
  6435. /**
  6436. * Returns a lazy sequence of the nodes in a tree, via a depth-first walk.
  6437. * branch? must be a fn of one arg that returns true if passed a node
  6438. * that can have children (but may not).  children must be a fn of one
  6439. * arg that returns a sequence of the children. Will only be called on
  6440. * nodes for which branch? returns true. Root is the root node of the
  6441. * tree.
  6442. */
  6443. cljs.core.tree_seq = (function tree_seq(branch_QMARK_,children,root){
  6444. var walk__2843 = (function walk(node){
  6445. return (new cljs.core.LazySeq(null,false,(function (){
  6446. return cljs.core.cons.call(null,node,(cljs.core.truth_(branch_QMARK_.call(null,node))?cljs.core.mapcat.call(null,walk,children.call(null,node)):null));
  6447. })));
  6448. });
  6449.  
  6450. return walk__2843.call(null,root);
  6451. });
  6452. /**
  6453. * Takes any nested combination of sequential things (lists, vectors,
  6454. * etc.) and returns their contents as a single, flat sequence.
  6455. * (flatten nil) returns nil.
  6456. */
  6457. cljs.core.flatten = (function flatten(x){
  6458. return cljs.core.filter.call(null,(function (p1__2842_SHARP_){
  6459. return cljs.core.not.call(null,cljs.core.sequential_QMARK_.call(null,p1__2842_SHARP_));
  6460. }),cljs.core.rest.call(null,cljs.core.tree_seq.call(null,cljs.core.sequential_QMARK_,cljs.core.seq,x)));
  6461. });
  6462. /**
  6463. * Returns a new coll consisting of to-coll with all of the items of
  6464. * from-coll conjoined.
  6465. */
  6466. cljs.core.into = (function into(to,from){
  6467. return cljs.core.reduce.call(null,cljs.core._conj,to,from);
  6468. });
  6469. /**
  6470. * Returns a lazy sequence of lists of n items each, at offsets step
  6471. * apart. If step is not supplied, defaults to n, i.e. the partitions
  6472. * do not overlap. If a pad collection is supplied, use its elements as
  6473. * necessary to complete last partition upto n items. In case there are
  6474. * not enough padding elements, return a partition with less than n items.
  6475. */
  6476. cljs.core.partition = (function() {
  6477. var partition = null;
  6478. var partition__2850 = (function (n,coll){
  6479. return partition.call(null,n,n,coll);
  6480. });
  6481. var partition__2851 = (function (n,step,coll){
  6482. return (new cljs.core.LazySeq(null,false,(function (){
  6483. var temp__3726__auto____2844 = cljs.core.seq.call(null,coll);
  6484.  
  6485. if(cljs.core.truth_(temp__3726__auto____2844))
  6486. {var s__2845 = temp__3726__auto____2844;
  6487.  
  6488. var p__2846 = cljs.core.take.call(null,n,s__2845);
  6489.  
  6490. if(cljs.core.truth_(cljs.core._EQ_.call(null,n,cljs.core.count.call(null,p__2846))))
  6491. {return cljs.core.cons.call(null,p__2846,partition.call(null,n,step,cljs.core.drop.call(null,step,s__2845)));
  6492. } else
  6493. {return null;
  6494. }
  6495. } else
  6496. {return null;
  6497. }
  6498. })));
  6499. });
  6500. var partition__2852 = (function (n,step,pad,coll){
  6501. return (new cljs.core.LazySeq(null,false,(function (){
  6502. var temp__3726__auto____2847 = cljs.core.seq.call(null,coll);
  6503.  
  6504. if(cljs.core.truth_(temp__3726__auto____2847))
  6505. {var s__2848 = temp__3726__auto____2847;
  6506.  
  6507. var p__2849 = cljs.core.take.call(null,n,s__2848);
  6508.  
  6509. if(cljs.core.truth_(cljs.core._EQ_.call(null,n,cljs.core.count.call(null,p__2849))))
  6510. {return cljs.core.cons.call(null,p__2849,partition.call(null,n,step,pad,cljs.core.drop.call(null,step,s__2848)));
  6511. } else
  6512. {return cljs.core.list.call(null,cljs.core.take.call(null,n,cljs.core.concat.call(null,p__2849,pad)));
  6513. }
  6514. } else
  6515. {return null;
  6516. }
  6517. })));
  6518. });
  6519. partition = function(n,step,pad,coll){
  6520. switch(arguments.length){
  6521. case  2 :
  6522. return partition__2850.call(this,n,step);
  6523. case  3 :
  6524. return partition__2851.call(this,n,step,pad);
  6525. case  4 :
  6526. return partition__2852.call(this,n,step,pad,coll);
  6527. }
  6528. throw('Invalid arity: ' + arguments.length);
  6529. };
  6530. return partition;
  6531. })()
  6532. ;
  6533. /**
  6534. * Returns the value in a nested associative structure,
  6535. * where ks is a sequence of ke(ys. Returns nil if the key is not present,
  6536. * or the not-found value if supplied.
  6537. */
  6538. cljs.core.get_in = (function() {
  6539. var get_in = null;
  6540. var get_in__2858 = (function (m,ks){
  6541. return cljs.core.reduce.call(null,cljs.core.get,m,ks);
  6542. });
  6543. var get_in__2859 = (function (m,ks,not_found){
  6544. var sentinel__2854 = cljs.core.lookup_sentinel;
  6545. var m__2855 = m;
  6546. var ks__2856 = cljs.core.seq.call(null,ks);
  6547.  
  6548. var G__2861,G__2862;G__2861=G__2862=new Object();
  6549. while(G__2861===G__2862){
  6550. G__2861=(function(continue_val){
  6551. if(cljs.core.truth_(ks__2856))
  6552. {var m__2857 = cljs.core.get.call(null,m__2855,cljs.core.first.call(null,ks__2856),sentinel__2854);
  6553.  
  6554. if(cljs.core.truth_(cljs.core.identical_QMARK_.call(null,sentinel__2854,m__2857)))
  6555. {return not_found;
  6556. } else
  6557. {{
  6558. var G__2863 = sentinel__2854;
  6559. var G__2864 = m__2857;
  6560. var G__2865 = cljs.core.next.call(null,ks__2856);
  6561. sentinel__2854 = G__2863;
  6562. m__2855 = G__2864;
  6563. ks__2856 = G__2865;
  6564. return continue_val;
  6565. }
  6566. }
  6567. } else
  6568. {return m__2855;
  6569. }
  6570. })(G__2862);}
  6571. return G__2861;
  6572. });
  6573. get_in = function(m,ks,not_found){
  6574. switch(arguments.length){
  6575. case  2 :
  6576. return get_in__2858.call(this,m,ks);
  6577. case  3 :
  6578. return get_in__2859.call(this,m,ks,not_found);
  6579. }
  6580. throw('Invalid arity: ' + arguments.length);
  6581. };
  6582. return get_in;
  6583. })()
  6584. ;
  6585. /**
  6586. * Associates a value in a nested associative structure, where ks is a
  6587. * sequence of keys and v is the new value and returns a new nested structure.
  6588. * If any levels do not exist, hash-maps will be created.
  6589. */
  6590. cljs.core.assoc_in = (function assoc_in(m,p__2866,v){
  6591. var vec__2867__2868 = p__2866;
  6592. var k__2869 = cljs.core.nth.call(null,vec__2867__2868,0,null);
  6593. var ks__2870 = cljs.core.nthnext.call(null,vec__2867__2868,1);
  6594.  
  6595. if(cljs.core.truth_(ks__2870))
  6596. {return cljs.core.assoc.call(null,m,k__2869,assoc_in.call(null,cljs.core.get.call(null,m,k__2869),ks__2870,v));
  6597. } else
  6598. {return cljs.core.assoc.call(null,m,k__2869,v);
  6599. }
  6600. });
  6601. /**
  6602. * 'Updates' a value in a nested associative structure, where ks is a
  6603. * sequence of keys and f is a function that will take the old value
  6604. * and any supplied args and return the new value, and returns a new
  6605. * nested structure.  If any levels do not exist, hash-maps will be
  6606. * created.
  6607. * @param {...*} var_args
  6608. */
  6609. cljs.core.update_in = (function() {
  6610. var update_in__delegate = function (m,p__2871,f,args){
  6611. var vec__2872__2873 = p__2871;
  6612. var k__2874 = cljs.core.nth.call(null,vec__2872__2873,0,null);
  6613. var ks__2875 = cljs.core.nthnext.call(null,vec__2872__2873,1);
  6614.  
  6615. if(cljs.core.truth_(ks__2875))
  6616. {return cljs.core.assoc.call(null,m,k__2874,cljs.core.apply.call(null,update_in,cljs.core.get.call(null,m,k__2874),ks__2875,f,args));
  6617. } else
  6618. {return cljs.core.assoc.call(null,m,k__2874,cljs.core.apply.call(null,f,cljs.core.get.call(null,m,k__2874),args));
  6619. }
  6620. };
  6621. var update_in = function (m,p__2871,f,var_args){
  6622. var args = null;
  6623. if (goog.isDef(var_args)) {
  6624.   args = cljs.core.array_seq(Array.prototype.slice.call(arguments, 3),0);
  6625. }
  6626. return update_in__delegate.call(this, m, p__2871, f, args);
  6627. };
  6628. update_in.cljs$lang$maxFixedArity = 3;
  6629. update_in.cljs$lang$applyTo = (function (arglist__2876){
  6630. var m = cljs.core.first(arglist__2876);
  6631. var p__2871 = cljs.core.first(cljs.core.next(arglist__2876));
  6632. var f = cljs.core.first(cljs.core.next(cljs.core.next(arglist__2876)));
  6633. var args = cljs.core.rest(cljs.core.next(cljs.core.next(arglist__2876)));
  6634. return update_in__delegate.call(this, m, p__2871, f, args);
  6635. });
  6636. return update_in;
  6637. })()
  6638. ;
  6639.  
  6640. /**
  6641. * @constructor
  6642. */
  6643. cljs.core.Vector = (function (meta,array){
  6644. this.meta = meta;
  6645. this.array = array;
  6646. })
  6647. cljs.core.Vector.prototype.cljs$core$IEquiv$ = true;
  6648. cljs.core.Vector.prototype.cljs$core$IEquiv$_equiv = (function (coll,other){
  6649. var this__2877 = this;
  6650. return cljs.core.equiv_sequential.call(null,coll,other);
  6651. });
  6652. cljs.core.Vector.prototype.cljs$core$ICollection$ = true;
  6653. cljs.core.Vector.prototype.cljs$core$ICollection$_conj = (function (coll,o){
  6654. var this__2878 = this;
  6655. var new_array__2879 = cljs.core.aclone.call(null,this__2878.array);
  6656.  
  6657. new_array__2879.push(o);
  6658. return (new cljs.core.Vector(this__2878.meta,new_array__2879));
  6659. });
  6660. cljs.core.Vector.prototype.cljs$core$ISeqable$ = true;
  6661. cljs.core.Vector.prototype.cljs$core$ISeqable$_seq = (function (coll){
  6662. var this__2880 = this;
  6663. if(cljs.core.truth_(cljs.core._GT_.call(null,this__2880.array.length,0)))
  6664. {var vector_seq__2881 = (function vector_seq(i){
  6665. return (new cljs.core.LazySeq(null,false,(function (){
  6666. if(cljs.core.truth_(cljs.core._LT_.call(null,i,this__2880.array.length)))
  6667. {return cljs.core.cons.call(null,(this__2880.array[i]),vector_seq.call(null,cljs.core.inc.call(null,i)));
  6668. } else
  6669. {return null;
  6670. }
  6671. })));
  6672. });
  6673.  
  6674. return vector_seq__2881.call(null,0);
  6675. } else
  6676. {return null;
  6677. }
  6678. });
  6679. cljs.core.Vector.prototype.cljs$core$IVector$ = true;
  6680. cljs.core.Vector.prototype.cljs$core$IVector$_assoc_n = (function (coll,n,val){
  6681. var this__2882 = this;
  6682. return cljs.core._assoc.call(null,coll,n,val);
  6683. });
  6684. cljs.core.Vector.prototype.cljs$core$IStack$ = true;
  6685. cljs.core.Vector.prototype.cljs$core$IStack$_peek = (function (coll){
  6686. var this__2883 = this;
  6687. var count__2884 = this__2883.array.length;
  6688.  
  6689. if(cljs.core.truth_(cljs.core._GT_.call(null,count__2884,0)))
  6690. {return (this__2883.array[cljs.core.dec.call(null,count__2884)]);
  6691. } else
  6692. {return null;
  6693. }
  6694. });
  6695. cljs.core.Vector.prototype.cljs$core$IStack$_pop = (function (coll){
  6696. var this__2885 = this;
  6697. if(cljs.core.truth_(cljs.core._GT_.call(null,this__2885.array.length,0)))
  6698. {var new_array__2886 = cljs.core.aclone.call(null,this__2885.array);
  6699.  
  6700. new_array__2886.pop();
  6701. return (new cljs.core.Vector(this__2885.meta,new_array__2886));
  6702. } else
  6703. {return null;
  6704. }
  6705. });
  6706. cljs.core.Vector.prototype.cljs$core$IWithMeta$ = true;
  6707. cljs.core.Vector.prototype.cljs$core$IWithMeta$_with_meta = (function (coll,meta){
  6708. var this__2887 = this;
  6709. return (new cljs.core.Vector(meta,this__2887.array));
  6710. });
  6711. cljs.core.Vector.prototype.cljs$core$IEmptyableCollection$ = true;
  6712. cljs.core.Vector.prototype.cljs$core$IEmptyableCollection$_empty = (function (coll){
  6713. var this__2888 = this;
  6714. return cljs.core.with_meta.call(null,cljs.core.Vector.EMPTY,this__2888.meta);
  6715. });
  6716. cljs.core.Vector.prototype.cljs$core$IIndexed$ = true;
  6717. cljs.core.Vector.prototype.cljs$core$IIndexed$_nth = (function() {
  6718. var G__2902 = null;
  6719. var G__2902__2903 = (function (coll,n){
  6720. var this__2889 = this;
  6721. if(cljs.core.truth_((function (){var and__3574__auto____2890 = cljs.core._LT__EQ_.call(null,0,n);
  6722.  
  6723. if(cljs.core.truth_(and__3574__auto____2890))
  6724. {return cljs.core._LT_.call(null,n,this__2889.array.length);
  6725. } else
  6726. {return and__3574__auto____2890;
  6727. }
  6728. })()))
  6729. {return (this__2889.array[n]);
  6730. } else
  6731. {return null;
  6732. }
  6733. });
  6734. var G__2902__2904 = (function (coll,n,not_found){
  6735. var this__2891 = this;
  6736. if(cljs.core.truth_((function (){var and__3574__auto____2892 = cljs.core._LT__EQ_.call(null,0,n);
  6737.  
  6738. if(cljs.core.truth_(and__3574__auto____2892))
  6739. {return cljs.core._LT_.call(null,n,this__2891.array.length);
  6740. } else
  6741. {return and__3574__auto____2892;
  6742. }
  6743. })()))
  6744. {return (this__2891.array[n]);
  6745. } else
  6746. {return not_found;
  6747. }
  6748. });
  6749. G__2902 = function(coll,n,not_found){
  6750. switch(arguments.length){
  6751. case  2 :
  6752. return G__2902__2903.call(this,coll,n);
  6753. case  3 :
  6754. return G__2902__2904.call(this,coll,n,not_found);
  6755. }
  6756. throw('Invalid arity: ' + arguments.length);
  6757. };
  6758. return G__2902;
  6759. })()
  6760. ;
  6761. cljs.core.Vector.prototype.cljs$core$IMeta$ = true;
  6762. cljs.core.Vector.prototype.cljs$core$IMeta$_meta = (function (coll){
  6763. var this__2893 = this;
  6764. return this__2893.meta;
  6765. });
  6766. cljs.core.Vector.prototype.cljs$core$IReduce$ = true;
  6767. cljs.core.Vector.prototype.cljs$core$IReduce$_reduce = (function() {
  6768. var G__2906 = null;
  6769. var G__2906__2907 = (function (v,f){
  6770. var this__2894 = this;
  6771. return cljs.core.ci_reduce.call(null,this__2894.array,f);
  6772. });
  6773. var G__2906__2908 = (function (v,f,start){
  6774. var this__2895 = this;
  6775. return cljs.core.ci_reduce.call(null,this__2895.array,f,start);
  6776. });
  6777. G__2906 = function(v,f,start){
  6778. switch(arguments.length){
  6779. case  2 :
  6780. return G__2906__2907.call(this,v,f);
  6781. case  3 :
  6782. return G__2906__2908.call(this,v,f,start);
  6783. }
  6784. throw('Invalid arity: ' + arguments.length);
  6785. };
  6786. return G__2906;
  6787. })()
  6788. ;
  6789. cljs.core.Vector.prototype.cljs$core$IHash$ = true;
  6790. cljs.core.Vector.prototype.cljs$core$IHash$_hash = (function (coll){
  6791. var this__2896 = this;
  6792. return cljs.core.hash_coll.call(null,coll);
  6793. });
  6794. cljs.core.Vector.prototype.cljs$core$ICounted$ = true;
  6795. cljs.core.Vector.prototype.cljs$core$ICounted$_count = (function (coll){
  6796. var this__2897 = this;
  6797. return this__2897.array.length;
  6798. });
  6799. cljs.core.Vector.prototype.cljs$core$ISequential$ = true;
  6800. cljs.core.Vector.prototype.cljs$core$IAssociative$ = true;
  6801. cljs.core.Vector.prototype.cljs$core$IAssociative$_assoc = (function (coll,k,v){
  6802. var this__2898 = this;
  6803. var new_array__2899 = cljs.core.aclone.call(null,this__2898.array);
  6804.  
  6805. (new_array__2899[k] = v);
  6806. return (new cljs.core.Vector(this__2898.meta,new_array__2899));
  6807. });
  6808. cljs.core.Vector.prototype.cljs$core$ILookup$ = true;
  6809. cljs.core.Vector.prototype.cljs$core$ILookup$_lookup = (function() {
  6810. var G__2910 = null;
  6811. var G__2910__2911 = (function (coll,k){
  6812. var this__2900 = this;
  6813. return cljs.core._nth.call(null,coll,k,null);
  6814. });
  6815. var G__2910__2912 = (function (coll,k,not_found){
  6816. var this__2901 = this;
  6817. return cljs.core._nth.call(null,coll,k,not_found);
  6818. });
  6819. G__2910 = function(coll,k,not_found){
  6820. switch(arguments.length){
  6821. case  2 :
  6822. return G__2910__2911.call(this,coll,k);
  6823. case  3 :
  6824. return G__2910__2912.call(this,coll,k,not_found);
  6825. }
  6826. throw('Invalid arity: ' + arguments.length);
  6827. };
  6828. return G__2910;
  6829. })()
  6830. ;
  6831. cljs.core.Vector.EMPTY = (new cljs.core.Vector(null,cljs.core.array.call(null)));
  6832. cljs.core.Vector.fromArray = (function (xs){
  6833. return (new cljs.core.Vector(null,xs));
  6834. });
  6835. cljs.core.Vector.prototype.call = (function() {
  6836. var G__2914 = null;
  6837. var G__2914__2915 = (function (_,k){
  6838. return cljs.core._lookup.call(null,this,k);
  6839. });
  6840. var G__2914__2916 = (function (_,k,not_found){
  6841. return cljs.core._lookup.call(null,this,k,not_found);
  6842. });
  6843. G__2914 = function(_,k,not_found){
  6844. switch(arguments.length){
  6845. case  2 :
  6846. return G__2914__2915.call(this,_,k);
  6847. case  3 :
  6848. return G__2914__2916.call(this,_,k,not_found);
  6849. }
  6850. throw('Invalid arity: ' + arguments.length);
  6851. };
  6852. return G__2914;
  6853. })()
  6854. ;
  6855. cljs.core.vec = (function vec(coll){
  6856. return cljs.core.reduce.call(null,cljs.core.conj,cljs.core.Vector.EMPTY,coll);
  6857. });
  6858. /**
  6859. * @param {...*} var_args
  6860. */
  6861. cljs.core.vector = (function() {
  6862. var vector__delegate = function (args){
  6863. return cljs.core.vec.call(null,args);
  6864. };
  6865. var vector = function (var_args){
  6866. var args = null;
  6867. if (goog.isDef(var_args)) {
  6868.   args = cljs.core.array_seq(Array.prototype.slice.call(arguments, 0),0);
  6869. }
  6870. return vector__delegate.call(this, args);
  6871. };
  6872. vector.cljs$lang$maxFixedArity = 0;
  6873. vector.cljs$lang$applyTo = (function (arglist__2918){
  6874. var args = cljs.core.seq( arglist__2918 );;
  6875. return vector__delegate.call(this, args);
  6876. });
  6877. return vector;
  6878. })()
  6879. ;
  6880.  
  6881. /**
  6882. * @constructor
  6883. */
  6884. cljs.core.NeverEquiv = (function (){
  6885. })
  6886. cljs.core.NeverEquiv.prototype.cljs$core$IEquiv$ = true;
  6887. cljs.core.NeverEquiv.prototype.cljs$core$IEquiv$_equiv = (function (o,other){
  6888. var this__2919 = this;
  6889. return false;
  6890. });
  6891. cljs.core.never_equiv = (new cljs.core.NeverEquiv());
  6892. /**
  6893. * Assumes y is a map. Returns true if x equals y, otherwise returns
  6894. * false.
  6895. */
  6896. cljs.core.equiv_map = (function equiv_map(x,y){
  6897. return cljs.core.boolean$.call(null,(cljs.core.truth_(cljs.core.map_QMARK_.call(null,y))?(cljs.core.truth_(cljs.core._EQ_.call(null,cljs.core.count.call(null,x),cljs.core.count.call(null,y)))?cljs.core.every_QMARK_.call(null,cljs.core.identity,cljs.core.map.call(null,(function (xkv){
  6898. return cljs.core._EQ_.call(null,cljs.core.get.call(null,y,cljs.core.first.call(null,xkv),cljs.core.never_equiv),cljs.core.second.call(null,xkv));
  6899. }),x)):null):null));
  6900. });
  6901. cljs.core.scan_array = (function scan_array(incr,k,array){
  6902. var len__2920 = array.length;
  6903.  
  6904. var i__2921 = 0;
  6905.  
  6906. var G__2922,G__2923;G__2922=G__2923=new Object();
  6907. while(G__2922===G__2923){
  6908. G__2922=(function(continue_val){
  6909. if(cljs.core.truth_(cljs.core._LT_.call(null,i__2921,len__2920)))
  6910. {if(cljs.core.truth_(cljs.core._EQ_.call(null,k,(array[i__2921]))))
  6911. {return i__2921;
  6912. } else
  6913. {{
  6914. var G__2924 = cljs.core._PLUS_.call(null,i__2921,incr);
  6915. i__2921 = G__2924;
  6916. return continue_val;
  6917. }
  6918. }
  6919. } else
  6920. {return null;
  6921. }
  6922. })(G__2923);}
  6923. return G__2922;
  6924. });
  6925. cljs.core.obj_map_contains_key_QMARK_ = (function() {
  6926. var obj_map_contains_key_QMARK_ = null;
  6927. var obj_map_contains_key_QMARK___2926 = (function (k,strobj){
  6928. return obj_map_contains_key_QMARK_.call(null,k,strobj,true,false);
  6929. });
  6930. var obj_map_contains_key_QMARK___2927 = (function (k,strobj,true_val,false_val){
  6931. if(cljs.core.truth_((function (){var and__3574__auto____2925 = goog.isString.call(null,k);
  6932.  
  6933. if(cljs.core.truth_(and__3574__auto____2925))
  6934. {return strobj.hasOwnProperty(k);
  6935. } else
  6936. {return and__3574__auto____2925;
  6937. }
  6938. })()))
  6939. {return true_val;
  6940. } else
  6941. {return false_val;
  6942. }
  6943. });
  6944. obj_map_contains_key_QMARK_ = function(k,strobj,true_val,false_val){
  6945. switch(arguments.length){
  6946. case  2 :
  6947. return obj_map_contains_key_QMARK___2926.call(this,k,strobj);
  6948. case  4 :
  6949. return obj_map_contains_key_QMARK___2927.call(this,k,strobj,true_val,false_val);
  6950. }
  6951. throw('Invalid arity: ' + arguments.length);
  6952. };
  6953. return obj_map_contains_key_QMARK_;
  6954. })()
  6955. ;
  6956.  
  6957. /**
  6958. * @constructor
  6959. */
  6960. cljs.core.ObjMap = (function (meta,keys,strobj){
  6961. this.meta = meta;
  6962. this.keys = keys;
  6963. this.strobj = strobj;
  6964. })
  6965. cljs.core.ObjMap.prototype.cljs$core$IEquiv$ = true;
  6966. cljs.core.ObjMap.prototype.cljs$core$IEquiv$_equiv = (function (coll,other){
  6967. var this__2930 = this;
  6968. return cljs.core.equiv_map.call(null,coll,other);
  6969. });
  6970. cljs.core.ObjMap.prototype.cljs$core$ICollection$ = true;
  6971. cljs.core.ObjMap.prototype.cljs$core$ICollection$_conj = (function (coll,entry){
  6972. var this__2931 = this;
  6973. if(cljs.core.truth_(cljs.core.vector_QMARK_.call(null,entry)))
  6974. {return cljs.core._assoc.call(null,coll,cljs.core._nth.call(null,entry,0),cljs.core._nth.call(null,entry,1));
  6975. } else
  6976. {return cljs.core.reduce.call(null,cljs.core._conj,coll,entry);
  6977. }
  6978. });
  6979. cljs.core.ObjMap.prototype.cljs$core$ISeqable$ = true;
  6980. cljs.core.ObjMap.prototype.cljs$core$ISeqable$_seq = (function (coll){
  6981. var this__2932 = this;
  6982. if(cljs.core.truth_(cljs.core.pos_QMARK_.call(null,this__2932.keys.length)))
  6983. {return cljs.core.map.call(null,(function (p1__2929_SHARP_){
  6984. return cljs.core.vector.call(null,p1__2929_SHARP_,(this__2932.strobj[p1__2929_SHARP_]));
  6985. }),this__2932.keys);
  6986. } else
  6987. {return null;
  6988. }
  6989. });
  6990. cljs.core.ObjMap.prototype.cljs$core$IWithMeta$ = true;
  6991. cljs.core.ObjMap.prototype.cljs$core$IWithMeta$_with_meta = (function (coll,meta){
  6992. var this__2933 = this;
  6993. return (new cljs.core.ObjMap(meta,this__2933.keys,this__2933.strobj));
  6994. });
  6995. cljs.core.ObjMap.prototype.cljs$core$IMap$ = true;
  6996. cljs.core.ObjMap.prototype.cljs$core$IMap$_dissoc = (function (coll,k){
  6997. var this__2934 = this;
  6998. if(cljs.core.truth_((function (){var and__3574__auto____2935 = goog.isString.call(null,k);
  6999.  
  7000. if(cljs.core.truth_(and__3574__auto____2935))
  7001. {return this__2934.strobj.hasOwnProperty(k);
  7002. } else
  7003. {return and__3574__auto____2935;
  7004. }
  7005. })()))
  7006. {var new_keys__2936 = cljs.core.aclone.call(null,this__2934.keys);
  7007. var new_strobj__2937 = goog.object.clone.call(null,this__2934.strobj);
  7008.  
  7009. new_keys__2936.splice(cljs.core.scan_array.call(null,1,k,new_keys__2936),1);
  7010. cljs.core.js_delete.call(null,new_strobj__2937,k);
  7011. return (new cljs.core.ObjMap(this__2934.meta,new_keys__2936,new_strobj__2937));
  7012. } else
  7013. {return coll;
  7014. }
  7015. });
  7016. cljs.core.ObjMap.prototype.cljs$core$IEmptyableCollection$ = true;
  7017. cljs.core.ObjMap.prototype.cljs$core$IEmptyableCollection$_empty = (function (coll){
  7018. var this__2938 = this;
  7019. return cljs.core.with_meta.call(null,cljs.core.ObjMap.EMPTY,this__2938.meta);
  7020. });
  7021. cljs.core.ObjMap.prototype.cljs$core$IMeta$ = true;
  7022. cljs.core.ObjMap.prototype.cljs$core$IMeta$_meta = (function (coll){
  7023. var this__2939 = this;
  7024. return this__2939.meta;
  7025. });
  7026. cljs.core.ObjMap.prototype.cljs$core$IHash$ = true;
  7027. cljs.core.ObjMap.prototype.cljs$core$IHash$_hash = (function (coll){
  7028. var this__2940 = this;
  7029. return cljs.core.hash_coll.call(null,coll);
  7030. });
  7031. cljs.core.ObjMap.prototype.cljs$core$ICounted$ = true;
  7032. cljs.core.ObjMap.prototype.cljs$core$ICounted$_count = (function (coll){
  7033. var this__2941 = this;
  7034. return this__2941.keys.length;
  7035. });
  7036. cljs.core.ObjMap.prototype.cljs$core$IAssociative$ = true;
  7037. cljs.core.ObjMap.prototype.cljs$core$IAssociative$_assoc = (function (coll,k,v){
  7038. var this__2942 = this;
  7039. if(cljs.core.truth_(goog.isString.call(null,k)))
  7040. {var new_strobj__2943 = goog.object.clone.call(null,this__2942.strobj);
  7041. var overwrite_QMARK___2944 = new_strobj__2943.hasOwnProperty(k);
  7042.  
  7043. (new_strobj__2943[k] = v);
  7044. if(cljs.core.truth_(overwrite_QMARK___2944))
  7045. {return (new cljs.core.ObjMap(this__2942.meta,this__2942.keys,new_strobj__2943));
  7046. } else
  7047. {var new_keys__2945 = cljs.core.aclone.call(null,this__2942.keys);
  7048.  
  7049. new_keys__2945.push(k);
  7050. return (new cljs.core.ObjMap(this__2942.meta,new_keys__2945,new_strobj__2943));
  7051. }
  7052. } else
  7053. {return cljs.core.with_meta.call(null,cljs.core.into.call(null,cljs.core.hash_map.call(null,k,v),cljs.core.seq.call(null,coll)),this__2942.meta);
  7054. }
  7055. });
  7056. cljs.core.ObjMap.prototype.cljs$core$IAssociative$_contains_key_QMARK_ = (function (coll,k){
  7057. var this__2946 = this;
  7058. return cljs.core.obj_map_contains_key_QMARK_.call(null,k,this__2946.strobj);
  7059. });
  7060. cljs.core.ObjMap.prototype.cljs$core$ILookup$ = true;
  7061. cljs.core.ObjMap.prototype.cljs$core$ILookup$_lookup = (function() {
  7062. var G__2949 = null;
  7063. var G__2949__2950 = (function (coll,k){
  7064. var this__2947 = this;
  7065. return cljs.core._lookup.call(null,coll,k,null);
  7066. });
  7067. var G__2949__2951 = (function (coll,k,not_found){
  7068. var this__2948 = this;
  7069. return cljs.core.obj_map_contains_key_QMARK_.call(null,k,this__2948.strobj,(this__2948.strobj[k]),not_found);
  7070. });
  7071. G__2949 = function(coll,k,not_found){
  7072. switch(arguments.length){
  7073. case  2 :
  7074. return G__2949__2950.call(this,coll,k);
  7075. case  3 :
  7076. return G__2949__2951.call(this,coll,k,not_found);
  7077. }
  7078. throw('Invalid arity: ' + arguments.length);
  7079. };
  7080. return G__2949;
  7081. })()
  7082. ;
  7083. cljs.core.ObjMap.EMPTY = (new cljs.core.ObjMap(null,cljs.core.array.call(null),cljs.core.js_obj.call(null)));
  7084. cljs.core.ObjMap.fromObject = (function (ks,obj){
  7085. return (new cljs.core.ObjMap(null,ks,obj));
  7086. });
  7087. cljs.core.ObjMap.prototype.call = (function() {
  7088. var G__2954 = null;
  7089. var G__2954__2955 = (function (_,k){
  7090. return cljs.core._lookup.call(null,this,k);
  7091. });
  7092. var G__2954__2956 = (function (_,k,not_found){
  7093. return cljs.core._lookup.call(null,this,k,not_found);
  7094. });
  7095. G__2954 = function(_,k,not_found){
  7096. switch(arguments.length){
  7097. case  2 :
  7098. return G__2954__2955.call(this,_,k);
  7099. case  3 :
  7100. return G__2954__2956.call(this,_,k,not_found);
  7101. }
  7102. throw('Invalid arity: ' + arguments.length);
  7103. };
  7104. return G__2954;
  7105. })()
  7106. ;
  7107.  
  7108. /**
  7109. * @constructor
  7110. */
  7111. cljs.core.HashMap = (function (meta,count,hashobj){
  7112. this.meta = meta;
  7113. this.count = count;
  7114. this.hashobj = hashobj;
  7115. })
  7116. cljs.core.HashMap.prototype.cljs$core$IEquiv$ = true;
  7117. cljs.core.HashMap.prototype.cljs$core$IEquiv$_equiv = (function (coll,other){
  7118. var this__2958 = this;
  7119. return cljs.core.equiv_map.call(null,coll,other);
  7120. });
  7121. cljs.core.HashMap.prototype.cljs$core$ICollection$ = true;
  7122. cljs.core.HashMap.prototype.cljs$core$ICollection$_conj = (function (coll,entry){
  7123. var this__2959 = this;
  7124. if(cljs.core.truth_(cljs.core.vector_QMARK_.call(null,entry)))
  7125. {return cljs.core._assoc.call(null,coll,cljs.core._nth.call(null,entry,0),cljs.core._nth.call(null,entry,1));
  7126. } else
  7127. {return cljs.core.reduce.call(null,cljs.core._conj,coll,entry);
  7128. }
  7129. });
  7130. cljs.core.HashMap.prototype.cljs$core$ISeqable$ = true;
  7131. cljs.core.HashMap.prototype.cljs$core$ISeqable$_seq = (function (coll){
  7132. var this__2960 = this;
  7133. if(cljs.core.truth_(cljs.core.pos_QMARK_.call(null,this__2960.count)))
  7134. {var hashes__2961 = cljs.core.js_keys.call(null,this__2960.hashobj);
  7135.  
  7136. return cljs.core.mapcat.call(null,(function (p1__2953_SHARP_){
  7137. return cljs.core.map.call(null,cljs.core.vec,cljs.core.partition.call(null,2,(this__2960.hashobj[p1__2953_SHARP_])));
  7138. }),hashes__2961);
  7139. } else
  7140. {return null;
  7141. }
  7142. });
  7143. cljs.core.HashMap.prototype.cljs$core$IWithMeta$ = true;
  7144. cljs.core.HashMap.prototype.cljs$core$IWithMeta$_with_meta = (function (coll,meta){
  7145. var this__2962 = this;
  7146. return (new cljs.core.HashMap(meta,this__2962.count,this__2962.hashobj));
  7147. });
  7148. cljs.core.HashMap.prototype.cljs$core$IMap$ = true;
  7149. cljs.core.HashMap.prototype.cljs$core$IMap$_dissoc = (function (coll,k){
  7150. var this__2963 = this;
  7151. var h__2964 = cljs.core.hash.call(null,k);
  7152. var bucket__2965 = (this__2963.hashobj[h__2964]);
  7153. var i__2966 = (cljs.core.truth_(bucket__2965)?cljs.core.scan_array.call(null,2,k,bucket__2965):null);
  7154.  
  7155. if(cljs.core.truth_(cljs.core.not.call(null,i__2966)))
  7156. {return coll;
  7157. } else
  7158. {var new_hashobj__2967 = goog.object.clone.call(null,this__2963.hashobj);
  7159.  
  7160. if(cljs.core.truth_(cljs.core._GT_.call(null,3,bucket__2965.length)))
  7161. {cljs.core.js_delete.call(null,new_hashobj__2967,h__2964);
  7162. } else
  7163. {var new_bucket__2968 = cljs.core.aclone.call(null,bucket__2965);
  7164.  
  7165. new_bucket__2968.splice(i__2966,2);
  7166. (new_hashobj__2967[h__2964] = new_bucket__2968);
  7167. }
  7168. return (new cljs.core.HashMap(this__2963.meta,cljs.core.dec.call(null,this__2963.count),new_hashobj__2967));
  7169. }
  7170. });
  7171. cljs.core.HashMap.prototype.cljs$core$IEmptyableCollection$ = true;
  7172. cljs.core.HashMap.prototype.cljs$core$IEmptyableCollection$_empty = (function (coll){
  7173. var this__2969 = this;
  7174. return cljs.core.with_meta.call(null,cljs.core.HashMap.EMPTY,this__2969.meta);
  7175. });
  7176. cljs.core.HashMap.prototype.cljs$core$IMeta$ = true;
  7177. cljs.core.HashMap.prototype.cljs$core$IMeta$_meta = (function (coll){
  7178. var this__2970 = this;
  7179. return this__2970.meta;
  7180. });
  7181. cljs.core.HashMap.prototype.cljs$core$IHash$ = true;
  7182. cljs.core.HashMap.prototype.cljs$core$IHash$_hash = (function (coll){
  7183. var this__2971 = this;
  7184. return cljs.core.hash_coll.call(null,coll);
  7185. });
  7186. cljs.core.HashMap.prototype.cljs$core$ICounted$ = true;
  7187. cljs.core.HashMap.prototype.cljs$core$ICounted$_count = (function (coll){
  7188. var this__2972 = this;
  7189. return this__2972.count;
  7190. });
  7191. cljs.core.HashMap.prototype.cljs$core$IAssociative$ = true;
  7192. cljs.core.HashMap.prototype.cljs$core$IAssociative$_assoc = (function (coll,k,v){
  7193. var this__2973 = this;
  7194. var h__2974 = cljs.core.hash.call(null,k);
  7195. var bucket__2975 = (this__2973.hashobj[h__2974]);
  7196.  
  7197. if(cljs.core.truth_(bucket__2975))
  7198. {var new_bucket__2976 = cljs.core.aclone.call(null,bucket__2975);
  7199. var new_hashobj__2977 = goog.object.clone.call(null,this__2973.hashobj);
  7200.  
  7201. (new_hashobj__2977[h__2974] = new_bucket__2976);
  7202. var temp__3723__auto____2978 = cljs.core.scan_array.call(null,2,k,new_bucket__2976);
  7203.  
  7204. if(cljs.core.truth_(temp__3723__auto____2978))
  7205. {var i__2979 = temp__3723__auto____2978;
  7206.  
  7207. (new_bucket__2976[cljs.core.inc.call(null,i__2979)] = v);
  7208. return (new cljs.core.HashMap(this__2973.meta,this__2973.count,new_hashobj__2977));
  7209. } else
  7210. {new_bucket__2976.push(k,v);
  7211. return (new cljs.core.HashMap(this__2973.meta,cljs.core.inc.call(null,this__2973.count),new_hashobj__2977));
  7212. }
  7213. } else
  7214. {var new_hashobj__2980 = goog.object.clone.call(null,this__2973.hashobj);
  7215.  
  7216. (new_hashobj__2980[h__2974] = cljs.core.array.call(null,k,v));
  7217. return (new cljs.core.HashMap(this__2973.meta,cljs.core.inc.call(null,this__2973.count),new_hashobj__2980));
  7218. }
  7219. });
  7220. cljs.core.HashMap.prototype.cljs$core$IAssociative$_contains_key_QMARK_ = (function (coll,k){
  7221. var this__2981 = this;
  7222. var bucket__2982 = (this__2981.hashobj[cljs.core.hash.call(null,k)]);
  7223. var i__2983 = (cljs.core.truth_(bucket__2982)?cljs.core.scan_array.call(null,2,k,bucket__2982):null);
  7224.  
  7225. if(cljs.core.truth_(i__2983))
  7226. {return true;
  7227. } else
  7228. {return false;
  7229. }
  7230. });
  7231. cljs.core.HashMap.prototype.cljs$core$ILookup$ = true;
  7232. cljs.core.HashMap.prototype.cljs$core$ILookup$_lookup = (function() {
  7233. var G__2988 = null;
  7234. var G__2988__2989 = (function (coll,k){
  7235. var this__2984 = this;
  7236. return cljs.core._lookup.call(null,coll,k,null);
  7237. });
  7238. var G__2988__2990 = (function (coll,k,not_found){
  7239. var this__2985 = this;
  7240. var bucket__2986 = (this__2985.hashobj[cljs.core.hash.call(null,k)]);
  7241. var i__2987 = (cljs.core.truth_(bucket__2986)?cljs.core.scan_array.call(null,2,k,bucket__2986):null);
  7242.  
  7243. if(cljs.core.truth_(i__2987))
  7244. {return (bucket__2986[cljs.core.inc.call(null,i__2987)]);
  7245. } else
  7246. {return not_found;
  7247. }
  7248. });
  7249. G__2988 = function(coll,k,not_found){
  7250. switch(arguments.length){
  7251. case  2 :
  7252. return G__2988__2989.call(this,coll,k);
  7253. case  3 :
  7254. return G__2988__2990.call(this,coll,k,not_found);
  7255. }
  7256. throw('Invalid arity: ' + arguments.length);
  7257. };
  7258. return G__2988;
  7259. })()
  7260. ;
  7261. cljs.core.HashMap.EMPTY = (new cljs.core.HashMap(null,0,cljs.core.js_obj.call(null)));
  7262. cljs.core.HashMap.fromArrays = (function (ks,vs){
  7263. var len__2992 = ks.length;
  7264.  
  7265. var i__2993 = 0;
  7266. var out__2994 = cljs.core.HashMap.EMPTY;
  7267.  
  7268. var G__2995,G__2996;G__2995=G__2996=new Object();
  7269. while(G__2995===G__2996){
  7270. G__2995=(function(continue_val){
  7271. if(cljs.core.truth_(cljs.core._LT_.call(null,i__2993,len__2992)))
  7272. {{
  7273. var G__2997 = cljs.core.inc.call(null,i__2993);
  7274. var G__2998 = cljs.core.assoc.call(null,out__2994,(ks[i__2993]),(vs[i__2993]));
  7275. i__2993 = G__2997;
  7276. out__2994 = G__2998;
  7277. return continue_val;
  7278. }
  7279. } else
  7280. {return out__2994;
  7281. }
  7282. })(G__2996);}
  7283. return G__2995;
  7284. });
  7285. cljs.core.HashMap.prototype.call = (function() {
  7286. var G__2999 = null;
  7287. var G__2999__3000 = (function (_,k){
  7288. return cljs.core._lookup.call(null,this,k);
  7289. });
  7290. var G__2999__3001 = (function (_,k,not_found){
  7291. return cljs.core._lookup.call(null,this,k,not_found);
  7292. });
  7293. G__2999 = function(_,k,not_found){
  7294. switch(arguments.length){
  7295. case  2 :
  7296. return G__2999__3000.call(this,_,k);
  7297. case  3 :
  7298. return G__2999__3001.call(this,_,k,not_found);
  7299. }
  7300. throw('Invalid arity: ' + arguments.length);
  7301. };
  7302. return G__2999;
  7303. })()
  7304. ;
  7305. /**
  7306. * keyval => key val
  7307. * Returns a new hash map with supplied mappings.
  7308. * @param {...*} var_args
  7309. */
  7310. cljs.core.hash_map = (function() {
  7311. var hash_map__delegate = function (keyvals){
  7312. var in$__3003 = cljs.core.seq.call(null,keyvals);
  7313. var out__3004 = cljs.core.HashMap.EMPTY;
  7314.  
  7315. var G__3005,G__3006;G__3005=G__3006=new Object();
  7316. while(G__3005===G__3006){
  7317. G__3005=(function(continue_val){
  7318. if(cljs.core.truth_(in$__3003))
  7319. {{
  7320. var G__3007 = cljs.core.nnext.call(null,in$__3003);
  7321. var G__3008 = cljs.core.assoc.call(null,out__3004,cljs.core.first.call(null,in$__3003),cljs.core.second.call(null,in$__3003));
  7322. in$__3003 = G__3007;
  7323. out__3004 = G__3008;
  7324. return continue_val;
  7325. }
  7326. } else
  7327. {return out__3004;
  7328. }
  7329. })(G__3006);}
  7330. return G__3005;
  7331. };
  7332. var hash_map = function (var_args){
  7333. var keyvals = null;
  7334. if (goog.isDef(var_args)) {
  7335.   keyvals = cljs.core.array_seq(Array.prototype.slice.call(arguments, 0),0);
  7336. }
  7337. return hash_map__delegate.call(this, keyvals);
  7338. };
  7339. hash_map.cljs$lang$maxFixedArity = 0;
  7340. hash_map.cljs$lang$applyTo = (function (arglist__3009){
  7341. var keyvals = cljs.core.seq( arglist__3009 );;
  7342. return hash_map__delegate.call(this, keyvals);
  7343. });
  7344. return hash_map;
  7345. })()
  7346. ;
  7347. /**
  7348. * Returns a sequence of the map's keys.
  7349. */
  7350. cljs.core.keys = (function keys(hash_map){
  7351. return cljs.core.seq.call(null,cljs.core.map.call(null,cljs.core.first,hash_map));
  7352. });
  7353. /**
  7354. * Returns a sequence of the map's values.
  7355. */
  7356. cljs.core.vals = (function vals(hash_map){
  7357. return cljs.core.seq.call(null,cljs.core.map.call(null,cljs.core.second,hash_map));
  7358. });
  7359. /**
  7360. * Returns a map that consists of the rest of the maps conj-ed onto
  7361. * the first.  If a key occurs in more than one map, the mapping from
  7362. * the latter (left-to-right) will be the mapping in the result.
  7363. * @param {...*} var_args
  7364. */
  7365. cljs.core.merge = (function() {
  7366. var merge__delegate = function (maps){
  7367. if(cljs.core.truth_(cljs.core.some.call(null,cljs.core.identity,maps)))
  7368. {return cljs.core.reduce.call(null,(function (p1__3010_SHARP_,p2__3011_SHARP_){
  7369. return cljs.core.conj.call(null,(function (){var or__3576__auto____3012 = p1__3010_SHARP_;
  7370.  
  7371. if(cljs.core.truth_(or__3576__auto____3012))
  7372. {return or__3576__auto____3012;
  7373. } else
  7374. {return cljs.core.ObjMap.fromObject([],{});
  7375. }
  7376. })(),p2__3011_SHARP_);
  7377. }),maps);
  7378. } else
  7379. {return null;
  7380. }
  7381. };
  7382. var merge = function (var_args){
  7383. var maps = null;
  7384. if (goog.isDef(var_args)) {
  7385.   maps = cljs.core.array_seq(Array.prototype.slice.call(arguments, 0),0);
  7386. }
  7387. return merge__delegate.call(this, maps);
  7388. };
  7389. merge.cljs$lang$maxFixedArity = 0;
  7390. merge.cljs$lang$applyTo = (function (arglist__3013){
  7391. var maps = cljs.core.seq( arglist__3013 );;
  7392. return merge__delegate.call(this, maps);
  7393. });
  7394. return merge;
  7395. })()
  7396. ;
  7397. /**
  7398. * Returns a map that consists of the rest of the maps conj-ed onto
  7399. * the first.  If a key occurs in more than one map, the mapping(s)
  7400. * from the latter (left-to-right) will be combined with the mapping in
  7401. * the result by calling (f val-in-result val-in-latter).
  7402. * @param {...*} var_args
  7403. */
  7404. cljs.core.merge_with = (function() {
  7405. var merge_with__delegate = function (f,maps){
  7406. if(cljs.core.truth_(cljs.core.some.call(null,cljs.core.identity,maps)))
  7407. {var merge_entry__3016 = (function (m,e){
  7408. var k__3014 = cljs.core.first.call(null,e);
  7409. var v__3015 = cljs.core.second.call(null,e);
  7410.  
  7411. if(cljs.core.truth_(cljs.core.contains_QMARK_.call(null,m,k__3014)))
  7412. {return cljs.core.assoc.call(null,m,k__3014,f.call(null,cljs.core.get.call(null,m,k__3014),v__3015));
  7413. } else
  7414. {return cljs.core.assoc.call(null,m,k__3014,v__3015);
  7415. }
  7416. });
  7417. var merge2__3018 = (function (m1,m2){
  7418. return cljs.core.reduce.call(null,merge_entry__3016,(function (){var or__3576__auto____3017 = m1;
  7419.  
  7420. if(cljs.core.truth_(or__3576__auto____3017))
  7421. {return or__3576__auto____3017;
  7422. } else
  7423. {return cljs.core.ObjMap.fromObject([],{});
  7424. }
  7425. })(),cljs.core.seq.call(null,m2));
  7426. });
  7427.  
  7428. return cljs.core.reduce.call(null,merge2__3018,maps);
  7429. } else
  7430. {return null;
  7431. }
  7432. };
  7433. var merge_with = function (f,var_args){
  7434. var maps = null;
  7435. if (goog.isDef(var_args)) {
  7436.   maps = cljs.core.array_seq(Array.prototype.slice.call(arguments, 1),0);
  7437. }
  7438. return merge_with__delegate.call(this, f, maps);
  7439. };
  7440. merge_with.cljs$lang$maxFixedArity = 1;
  7441. merge_with.cljs$lang$applyTo = (function (arglist__3019){
  7442. var f = cljs.core.first(arglist__3019);
  7443. var maps = cljs.core.rest(arglist__3019);
  7444. return merge_with__delegate.call(this, f, maps);
  7445. });
  7446. return merge_with;
  7447. })()
  7448. ;
  7449. /**
  7450. * Returns a map containing only those entries in map whose key is in keys
  7451. */
  7452. cljs.core.select_keys = (function select_keys(map,keyseq){
  7453. var ret__3021 = cljs.core.ObjMap.fromObject([],{});
  7454. var keys__3022 = cljs.core.seq.call(null,keyseq);
  7455.  
  7456. var G__3025,G__3026;G__3025=G__3026=new Object();
  7457. while(G__3025===G__3026){
  7458. G__3025=(function(continue_val){
  7459. if(cljs.core.truth_(keys__3022))
  7460. {var key__3023 = cljs.core.first.call(null,keys__3022);
  7461. var entry__3024 = cljs.core.get.call(null,map,key__3023);
  7462.  
  7463. {
  7464. var G__3027 = (cljs.core.truth_(entry__3024)?cljs.core.assoc.call(null,ret__3021,key__3023,entry__3024):ret__3021);
  7465. var G__3028 = cljs.core.next.call(null,keys__3022);
  7466. ret__3021 = G__3027;
  7467. keys__3022 = G__3028;
  7468. return continue_val;
  7469. }
  7470. } else
  7471. {return ret__3021;
  7472. }
  7473. })(G__3026);}
  7474. return G__3025;
  7475. });
  7476.  
  7477. /**
  7478. * @constructor
  7479. */
  7480. cljs.core.Set = (function (meta,hash_map){
  7481. this.meta = meta;
  7482. this.hash_map = hash_map;
  7483. })
  7484. cljs.core.Set.prototype.cljs$core$ISet$ = true;
  7485. cljs.core.Set.prototype.cljs$core$ISet$_disjoin = (function (coll,v){
  7486. var this__3029 = this;
  7487. return (new cljs.core.Set(this__3029.meta,cljs.core.dissoc.call(null,this__3029.hash_map,v)));
  7488. });
  7489. cljs.core.Set.prototype.cljs$core$IEquiv$ = true;
  7490. cljs.core.Set.prototype.cljs$core$IEquiv$_equiv = (function (coll,other){
  7491. var this__3030 = this;
  7492. var and__3574__auto____3031 = cljs.core.set_QMARK_.call(null,other);
  7493.  
  7494. if(cljs.core.truth_(and__3574__auto____3031))
  7495. {var and__3574__auto____3032 = cljs.core._EQ_.call(null,cljs.core.count.call(null,coll),cljs.core.count.call(null,other));
  7496.  
  7497. if(cljs.core.truth_(and__3574__auto____3032))
  7498. {return cljs.core.every_QMARK_.call(null,(function (p1__3020_SHARP_){
  7499. return cljs.core.contains_QMARK_.call(null,coll,p1__3020_SHARP_);
  7500. }),other);
  7501. } else
  7502. {return and__3574__auto____3032;
  7503. }
  7504. } else
  7505. {return and__3574__auto____3031;
  7506. }
  7507. });
  7508. cljs.core.Set.prototype.cljs$core$ICollection$ = true;
  7509. cljs.core.Set.prototype.cljs$core$ICollection$_conj = (function (coll,o){
  7510. var this__3033 = this;
  7511. return (new cljs.core.Set(this__3033.meta,cljs.core.assoc.call(null,this__3033.hash_map,o,null)));
  7512. });
  7513. cljs.core.Set.prototype.cljs$core$ISeqable$ = true;
  7514. cljs.core.Set.prototype.cljs$core$ISeqable$_seq = (function (coll){
  7515. var this__3034 = this;
  7516. return cljs.core.keys.call(null,this__3034.hash_map);
  7517. });
  7518. cljs.core.Set.prototype.cljs$core$IWithMeta$ = true;
  7519. cljs.core.Set.prototype.cljs$core$IWithMeta$_with_meta = (function (coll,meta){
  7520. var this__3035 = this;
  7521. return (new cljs.core.Set(meta,this__3035.hash_map));
  7522. });
  7523. cljs.core.Set.prototype.cljs$core$IEmptyableCollection$ = true;
  7524. cljs.core.Set.prototype.cljs$core$IEmptyableCollection$_empty = (function (coll){
  7525. var this__3036 = this;
  7526. return cljs.core.with_meta.call(null,cljs.core.Set.EMPTY,this__3036.meta);
  7527. });
  7528. cljs.core.Set.prototype.cljs$core$IMeta$ = true;
  7529. cljs.core.Set.prototype.cljs$core$IMeta$_meta = (function (coll){
  7530. var this__3037 = this;
  7531. return this__3037.meta;
  7532. });
  7533. cljs.core.Set.prototype.cljs$core$IHash$ = true;
  7534. cljs.core.Set.prototype.cljs$core$IHash$_hash = (function (coll){
  7535. var this__3038 = this;
  7536. return cljs.core.hash_coll.call(null,coll);
  7537. });
  7538. cljs.core.Set.prototype.cljs$core$ICounted$ = true;
  7539. cljs.core.Set.prototype.cljs$core$ICounted$_count = (function (coll){
  7540. var this__3039 = this;
  7541. return cljs.core.count.call(null,cljs.core.seq.call(null,coll));
  7542. });
  7543. cljs.core.Set.prototype.cljs$core$ILookup$ = true;
  7544. cljs.core.Set.prototype.cljs$core$ILookup$_lookup = (function() {
  7545. var G__3042 = null;
  7546. var G__3042__3043 = (function (coll,v){
  7547. var this__3040 = this;
  7548. return cljs.core._lookup.call(null,coll,v,null);
  7549. });
  7550. var G__3042__3044 = (function (coll,v,not_found){
  7551. var this__3041 = this;
  7552. if(cljs.core.truth_(cljs.core._contains_key_QMARK_.call(null,this__3041.hash_map,v)))
  7553. {return v;
  7554. } else
  7555. {return not_found;
  7556. }
  7557. });
  7558. G__3042 = function(coll,v,not_found){
  7559. switch(arguments.length){
  7560. case  2 :
  7561. return G__3042__3043.call(this,coll,v);
  7562. case  3 :
  7563. return G__3042__3044.call(this,coll,v,not_found);
  7564. }
  7565. throw('Invalid arity: ' + arguments.length);
  7566. };
  7567. return G__3042;
  7568. })()
  7569. ;
  7570. cljs.core.Set.EMPTY = (new cljs.core.Set(null,cljs.core.hash_map.call(null)));
  7571. cljs.core.Set.prototype.call = (function() {
  7572. var G__3046 = null;
  7573. var G__3046__3047 = (function (_,k){
  7574. return cljs.core._lookup.call(null,this,k);
  7575. });
  7576. var G__3046__3048 = (function (_,k,not_found){
  7577. return cljs.core._lookup.call(null,this,k,not_found);
  7578. });
  7579. G__3046 = function(_,k,not_found){
  7580. switch(arguments.length){
  7581. case  2 :
  7582. return G__3046__3047.call(this,_,k);
  7583. case  3 :
  7584. return G__3046__3048.call(this,_,k,not_found);
  7585. }
  7586. throw('Invalid arity: ' + arguments.length);
  7587. };
  7588. return G__3046;
  7589. })()
  7590. ;
  7591. /**
  7592. * Returns a set of the distinct elements of coll.
  7593. */
  7594. cljs.core.set = (function set(coll){
  7595. var in$__3051 = cljs.core.seq.call(null,coll);
  7596. var out__3052 = cljs.core.Set.EMPTY;
  7597.  
  7598. var G__3053,G__3054;G__3053=G__3054=new Object();
  7599. while(G__3053===G__3054){
  7600. G__3053=(function(continue_val){
  7601. if(cljs.core.truth_(cljs.core.not.call(null,cljs.core.empty_QMARK_.call(null,in$__3051))))
  7602. {{
  7603. var G__3055 = cljs.core.rest.call(null,in$__3051);
  7604. var G__3056 = cljs.core.conj.call(null,out__3052,cljs.core.first.call(null,in$__3051));
  7605. in$__3051 = G__3055;
  7606. out__3052 = G__3056;
  7607. return continue_val;
  7608. }
  7609. } else
  7610. {return out__3052;
  7611. }
  7612. })(G__3054);}
  7613. return G__3053;
  7614. });
  7615. /**
  7616. * Given a map of replacement pairs and a vector/collection, returns a
  7617. * vector/seq with any elements = a key in smap replaced with the
  7618. * corresponding val in smap
  7619. */
  7620. cljs.core.replace = (function replace(smap,coll){
  7621. if(cljs.core.truth_(cljs.core.vector_QMARK_.call(null,coll)))
  7622. {var n__3057 = cljs.core.count.call(null,coll);
  7623.  
  7624. return cljs.core.reduce.call(null,(function (v,i){
  7625. var temp__3723__auto____3058 = cljs.core.find.call(null,smap,cljs.core.nth.call(null,v,i));
  7626.  
  7627. if(cljs.core.truth_(temp__3723__auto____3058))
  7628. {var e__3059 = temp__3723__auto____3058;
  7629.  
  7630. return cljs.core.assoc.call(null,v,i,cljs.core.second.call(null,e__3059));
  7631. } else
  7632. {return v;
  7633. }
  7634. }),coll,cljs.core.take.call(null,n__3057,cljs.core.iterate.call(null,cljs.core.inc,0)));
  7635. } else
  7636. {return cljs.core.map.call(null,(function (p1__3050_SHARP_){
  7637. var temp__3723__auto____3060 = cljs.core.find.call(null,smap,p1__3050_SHARP_);
  7638.  
  7639. if(cljs.core.truth_(temp__3723__auto____3060))
  7640. {var e__3061 = temp__3723__auto____3060;
  7641.  
  7642. return cljs.core.second.call(null,e__3061);
  7643. } else
  7644. {return p1__3050_SHARP_;
  7645. }
  7646. }),coll);
  7647. }
  7648. });
  7649. /**
  7650. * Returns a lazy sequence of the elements of coll with duplicates removed
  7651. */
  7652. cljs.core.distinct = (function distinct(coll){
  7653. var step__3069 = (function step(xs,seen){
  7654. return (new cljs.core.LazySeq(null,false,(function (){
  7655. return (function (p__3062,seen){
  7656. var G__3070,G__3071;G__3070=G__3071=new Object();
  7657. while(G__3070===G__3071){
  7658. G__3070=(function(continue_val){
  7659. var vec__3063__3064 = p__3062;
  7660. var f__3065 = cljs.core.nth.call(null,vec__3063__3064,0,null);
  7661. var xs__3066 = vec__3063__3064;
  7662.  
  7663. var temp__3726__auto____3067 = cljs.core.seq.call(null,xs__3066);
  7664.  
  7665. if(cljs.core.truth_(temp__3726__auto____3067))
  7666. {var s__3068 = temp__3726__auto____3067;
  7667.  
  7668. if(cljs.core.truth_(cljs.core.contains_QMARK_.call(null,seen,f__3065)))
  7669. {{
  7670. var G__3072 = cljs.core.rest.call(null,s__3068);
  7671. var G__3073 = seen;
  7672. p__3062 = G__3072;
  7673. seen = G__3073;
  7674. return continue_val;
  7675. }
  7676. } else
  7677. {return cljs.core.cons.call(null,f__3065,step.call(null,cljs.core.rest.call(null,s__3068),cljs.core.conj.call(null,seen,f__3065)));
  7678. }
  7679. } else
  7680. {return null;
  7681. }
  7682. })(G__3071);}
  7683. return G__3070;
  7684. }).call(null,xs,seen);
  7685. })));
  7686. });
  7687.  
  7688. return step__3069.call(null,coll,cljs.core.set([]));
  7689. });
  7690. cljs.core.butlast = (function butlast(s){
  7691. var ret__3074 = cljs.core.Vector.fromArray([]);
  7692. var s__3075 = s;
  7693.  
  7694. var G__3076,G__3077;G__3076=G__3077=new Object();
  7695. while(G__3076===G__3077){
  7696. G__3076=(function(continue_val){
  7697. if(cljs.core.truth_(cljs.core.next.call(null,s__3075)))
  7698. {{
  7699. var G__3078 = cljs.core.conj.call(null,ret__3074,cljs.core.first.call(null,s__3075));
  7700. var G__3079 = cljs.core.next.call(null,s__3075);
  7701. ret__3074 = G__3078;
  7702. s__3075 = G__3079;
  7703. return continue_val;
  7704. }
  7705. } else
  7706. {return cljs.core.seq.call(null,ret__3074);
  7707. }
  7708. })(G__3077);}
  7709. return G__3076;
  7710. });
  7711. /**
  7712. * Returns the name String of a string, symbol or keyword.
  7713. */
  7714. cljs.core.name = (function name(x){
  7715. if(cljs.core.truth_(cljs.core.string_QMARK_.call(null,x)))
  7716. {return x;
  7717. } else
  7718. {if(cljs.core.truth_((function (){var or__3576__auto____3080 = cljs.core.keyword_QMARK_.call(null,x);
  7719.  
  7720. if(cljs.core.truth_(or__3576__auto____3080))
  7721. {return or__3576__auto____3080;
  7722. } else
  7723. {return cljs.core.symbol_QMARK_.call(null,x);
  7724. }
  7725. })()))
  7726. {var i__3081 = x.lastIndexOf("/");
  7727.  
  7728. if(cljs.core.truth_(cljs.core._LT_.call(null,i__3081,0)))
  7729. {return cljs.core.subs.call(null,x,2);
  7730. } else
  7731. {return cljs.core.subs.call(null,x,cljs.core.inc.call(null,i__3081));
  7732. }
  7733. } else
  7734. {if(cljs.core.truth_("﷐'else"))
  7735. {return null;
  7736. } else
  7737. {return null;
  7738. }
  7739. }
  7740. }
  7741. });
  7742. /**
  7743. * Returns the namespace String of a symbol or keyword, or nil if not present.
  7744. */
  7745. cljs.core.namespace = (function namespace(x){
  7746. if(cljs.core.truth_((function (){var or__3576__auto____3082 = cljs.core.keyword_QMARK_.call(null,x);
  7747.  
  7748. if(cljs.core.truth_(or__3576__auto____3082))
  7749. {return or__3576__auto____3082;
  7750. } else
  7751. {return cljs.core.symbol_QMARK_.call(null,x);
  7752. }
  7753. })()))
  7754. {var i__3083 = x.lastIndexOf("/");
  7755.  
  7756. if(cljs.core.truth_(cljs.core._GT_.call(null,i__3083,-1)))
  7757. {return cljs.core.subs.call(null,x,2,i__3083);
  7758. } else
  7759. {return null;
  7760. }
  7761. } else
  7762. {return "﷐'else";
  7763. }
  7764. });
  7765. /**
  7766. * Returns a map with the keys mapped to the corresponding vals.
  7767. */
  7768. cljs.core.zipmap = (function zipmap(keys,vals){
  7769. var map__3086 = cljs.core.ObjMap.fromObject([],{});
  7770. var ks__3087 = cljs.core.seq.call(null,keys);
  7771. var vs__3088 = cljs.core.seq.call(null,vals);
  7772.  
  7773. var G__3090,G__3091;G__3090=G__3091=new Object();
  7774. while(G__3090===G__3091){
  7775. G__3090=(function(continue_val){
  7776. if(cljs.core.truth_((function (){var and__3574__auto____3089 = ks__3087;
  7777.  
  7778. if(cljs.core.truth_(and__3574__auto____3089))
  7779. {return vs__3088;
  7780. } else
  7781. {return and__3574__auto____3089;
  7782. }
  7783. })()))
  7784. {{
  7785. var G__3092 = cljs.core.assoc.call(null,map__3086,cljs.core.first.call(null,ks__3087),cljs.core.first.call(null,vs__3088));
  7786. var G__3093 = cljs.core.next.call(null,ks__3087);
  7787. var G__3094 = cljs.core.next.call(null,vs__3088);
  7788. map__3086 = G__3092;
  7789. ks__3087 = G__3093;
  7790. vs__3088 = G__3094;
  7791. return continue_val;
  7792. }
  7793. } else
  7794. {return map__3086;
  7795. }
  7796. })(G__3091);}
  7797. return G__3090;
  7798. });
  7799. /**
  7800. * Returns the x for which (k x), a number, is greatest.
  7801. * @param {...*} var_args
  7802. */
  7803. cljs.core.max_key = (function() {
  7804. var max_key = null;
  7805. var max_key__3097 = (function (k,x){
  7806. return x;
  7807. });
  7808. var max_key__3098 = (function (k,x,y){
  7809. if(cljs.core.truth_(cljs.core._GT_.call(null,k.call(null,x),k.call(null,y))))
  7810. {return x;
  7811. } else
  7812. {return y;
  7813. }
  7814. });
  7815. var max_key__3099 = (function() {
  7816. var G__3101__delegate = function (k,x,y,more){
  7817. return cljs.core.reduce.call(null,(function (p1__3084_SHARP_,p2__3085_SHARP_){
  7818. return max_key.call(null,k,p1__3084_SHARP_,p2__3085_SHARP_);
  7819. }),max_key.call(null,k,x,y),more);
  7820. };
  7821. var G__3101 = function (k,x,y,var_args){
  7822. var more = null;
  7823. if (goog.isDef(var_args)) {
  7824.   more = cljs.core.array_seq(Array.prototype.slice.call(arguments, 3),0);
  7825. }
  7826. return G__3101__delegate.call(this, k, x, y, more);
  7827. };
  7828. G__3101.cljs$lang$maxFixedArity = 3;
  7829. G__3101.cljs$lang$applyTo = (function (arglist__3102){
  7830. var k = cljs.core.first(arglist__3102);
  7831. var x = cljs.core.first(cljs.core.next(arglist__3102));
  7832. var y = cljs.core.first(cljs.core.next(cljs.core.next(arglist__3102)));
  7833. var more = cljs.core.rest(cljs.core.next(cljs.core.next(arglist__3102)));
  7834. return G__3101__delegate.call(this, k, x, y, more);
  7835. });
  7836. return G__3101;
  7837. })()
  7838. ;
  7839. max_key = function(k,x,y,var_args){
  7840. var more = var_args;
  7841. switch(arguments.length){
  7842. case  2 :
  7843. return max_key__3097.call(this,k,x);
  7844. case  3 :
  7845. return max_key__3098.call(this,k,x,y);
  7846. default:
  7847. return max_key__3099.apply(this,arguments);
  7848. }
  7849. throw('Invalid arity: ' + arguments.length);
  7850. };
  7851. max_key.cljs$lang$maxFixedArity = 3;
  7852. max_key.cljs$lang$applyTo = max_key__3099.cljs$lang$applyTo;
  7853. return max_key;
  7854. })()
  7855. ;
  7856. /**
  7857. * Returns the x for which (k x), a number, is least.
  7858. * @param {...*} var_args
  7859. */
  7860. cljs.core.min_key = (function() {
  7861. var min_key = null;
  7862. var min_key__3103 = (function (k,x){
  7863. return x;
  7864. });
  7865. var min_key__3104 = (function (k,x,y){
  7866. if(cljs.core.truth_(cljs.core._LT_.call(null,k.call(null,x),k.call(null,y))))
  7867. {return x;
  7868. } else
  7869. {return y;
  7870. }
  7871. });
  7872. var min_key__3105 = (function() {
  7873. var G__3107__delegate = function (k,x,y,more){
  7874. return cljs.core.reduce.call(null,(function (p1__3095_SHARP_,p2__3096_SHARP_){
  7875. return min_key.call(null,k,p1__3095_SHARP_,p2__3096_SHARP_);
  7876. }),min_key.call(null,k,x,y),more);
  7877. };
  7878. var G__3107 = function (k,x,y,var_args){
  7879. var more = null;
  7880. if (goog.isDef(var_args)) {
  7881.   more = cljs.core.array_seq(Array.prototype.slice.call(arguments, 3),0);
  7882. }
  7883. return G__3107__delegate.call(this, k, x, y, more);
  7884. };
  7885. G__3107.cljs$lang$maxFixedArity = 3;
  7886. G__3107.cljs$lang$applyTo = (function (arglist__3108){
  7887. var k = cljs.core.first(arglist__3108);
  7888. var x = cljs.core.first(cljs.core.next(arglist__3108));
  7889. var y = cljs.core.first(cljs.core.next(cljs.core.next(arglist__3108)));
  7890. var more = cljs.core.rest(cljs.core.next(cljs.core.next(arglist__3108)));
  7891. return G__3107__delegate.call(this, k, x, y, more);
  7892. });
  7893. return G__3107;
  7894. })()
  7895. ;
  7896. min_key = function(k,x,y,var_args){
  7897. var more = var_args;
  7898. switch(arguments.length){
  7899. case  2 :
  7900. return min_key__3103.call(this,k,x);
  7901. case  3 :
  7902. return min_key__3104.call(this,k,x,y);
  7903. default:
  7904. return min_key__3105.apply(this,arguments);
  7905. }
  7906. throw('Invalid arity: ' + arguments.length);
  7907. };
  7908. min_key.cljs$lang$maxFixedArity = 3;
  7909. min_key.cljs$lang$applyTo = min_key__3105.cljs$lang$applyTo;
  7910. return min_key;
  7911. })()
  7912. ;
  7913. /**
  7914. * Returns a lazy sequence of lists like partition, but may include
  7915. * partitions with fewer than n items at the end.
  7916. */
  7917. cljs.core.partition_all = (function() {
  7918. var partition_all = null;
  7919. var partition_all__3111 = (function (n,coll){
  7920. return partition_all.call(null,n,n,coll);
  7921. });
  7922. var partition_all__3112 = (function (n,step,coll){
  7923. return (new cljs.core.LazySeq(null,false,(function (){
  7924. var temp__3726__auto____3109 = cljs.core.seq.call(null,coll);
  7925.  
  7926. if(cljs.core.truth_(temp__3726__auto____3109))
  7927. {var s__3110 = temp__3726__auto____3109;
  7928.  
  7929. return cljs.core.cons.call(null,cljs.core.take.call(null,n,s__3110),partition_all.call(null,n,step,cljs.core.drop.call(null,step,s__3110)));
  7930. } else
  7931. {return null;
  7932. }
  7933. })));
  7934. });
  7935. partition_all = function(n,step,coll){
  7936. switch(arguments.length){
  7937. case  2 :
  7938. return partition_all__3111.call(this,n,step);
  7939. case  3 :
  7940. return partition_all__3112.call(this,n,step,coll);
  7941. }
  7942. throw('Invalid arity: ' + arguments.length);
  7943. };
  7944. return partition_all;
  7945. })()
  7946. ;
  7947. /**
  7948. * Returns a lazy sequence of successive items from coll while
  7949. * (pred item) returns true. pred must be free of side-effects.
  7950. */
  7951. cljs.core.take_while = (function take_while(pred,coll){
  7952. return (new cljs.core.LazySeq(null,false,(function (){
  7953. var temp__3726__auto____3114 = cljs.core.seq.call(null,coll);
  7954.  
  7955. if(cljs.core.truth_(temp__3726__auto____3114))
  7956. {var s__3115 = temp__3726__auto____3114;
  7957.  
  7958. if(cljs.core.truth_(pred.call(null,cljs.core.first.call(null,s__3115))))
  7959. {return cljs.core.cons.call(null,cljs.core.first.call(null,s__3115),take_while.call(null,pred,cljs.core.rest.call(null,s__3115)));
  7960. } else
  7961. {return null;
  7962. }
  7963. } else
  7964. {return null;
  7965. }
  7966. })));
  7967. });
  7968. /**
  7969. * Returns a lazy seq of nums from start (inclusive) to end
  7970. * (exclusive), by step, where start defaults to 0, step to 1, and end
  7971. * to infinity.
  7972. */
  7973. cljs.core.range = (function() {
  7974. var range = null;
  7975. var range__3116 = (function (){
  7976. return cljs.core.iterate.call(null,cljs.core.inc,0);
  7977. });
  7978. var range__3117 = (function (end){
  7979. return range.call(null,0,end,1);
  7980. });
  7981. var range__3118 = (function (start,end){
  7982. return range.call(null,start,end,1);
  7983. });
  7984. var range__3119 = (function (start,end,step){
  7985. return cljs.core.take_while.call(null,(function (n){
  7986. return cljs.core._LT_.call(null,n,end);
  7987. }),cljs.core.iterate.call(null,(function (x){
  7988. return cljs.core._PLUS_.call(null,x,step);
  7989. }),start));
  7990. });
  7991. range = function(start,end,step){
  7992. switch(arguments.length){
  7993. case  0 :
  7994. return range__3116.call(this);
  7995. case  1 :
  7996. return range__3117.call(this,start);
  7997. case  2 :
  7998. return range__3118.call(this,start,end);
  7999. case  3 :
  8000. return range__3119.call(this,start,end,step);
  8001. }
  8002. throw('Invalid arity: ' + arguments.length);
  8003. };
  8004. return range;
  8005. })()
  8006. ;
  8007. /**
  8008. * Returns a lazy seq of every nth item in coll.
  8009. */
  8010. cljs.core.take_nth = (function take_nth(n,coll){
  8011. return (new cljs.core.LazySeq(null,false,(function (){
  8012. var temp__3726__auto____3121 = cljs.core.seq.call(null,coll);
  8013.  
  8014. if(cljs.core.truth_(temp__3726__auto____3121))
  8015. {var s__3122 = temp__3726__auto____3121;
  8016.  
  8017. return cljs.core.cons.call(null,cljs.core.first.call(null,s__3122),take_nth.call(null,n,cljs.core.drop.call(null,n,s__3122)));
  8018. } else
  8019. {return null;
  8020. }
  8021. })));
  8022. });
  8023. /**
  8024. * Returns a vector of [(take-while pred coll) (drop-while pred coll)]
  8025. */
  8026. cljs.core.split_with = (function split_with(pred,coll){
  8027. return cljs.core.Vector.fromArray([cljs.core.take_while.call(null,pred,coll),cljs.core.drop_while.call(null,pred,coll)]);
  8028. });
  8029. /**
  8030. * Applies f to each value in coll, splitting it each time f returns
  8031. * a new value.  Returns a lazy seq of partitions.
  8032. */
  8033. cljs.core.partition_by = (function partition_by(f,coll){
  8034. return (new cljs.core.LazySeq(null,false,(function (){
  8035. var temp__3726__auto____3124 = cljs.core.seq.call(null,coll);
  8036.  
  8037. if(cljs.core.truth_(temp__3726__auto____3124))
  8038. {var s__3125 = temp__3726__auto____3124;
  8039.  
  8040. var fst__3126 = cljs.core.first.call(null,s__3125);
  8041. var fv__3127 = f.call(null,fst__3126);
  8042. var run__3128 = cljs.core.cons.call(null,fst__3126,cljs.core.take_while.call(null,(function (p1__3123_SHARP_){
  8043. return cljs.core._EQ_.call(null,fv__3127,f.call(null,p1__3123_SHARP_));
  8044. }),cljs.core.next.call(null,s__3125)));
  8045.  
  8046. return cljs.core.cons.call(null,run__3128,partition_by.call(null,f,cljs.core.seq.call(null,cljs.core.drop.call(null,cljs.core.count.call(null,run__3128),s__3125))));
  8047. } else
  8048. {return null;
  8049. }
  8050. })));
  8051. });
  8052. /**
  8053. * Returns a map from distinct items in coll to the number of times
  8054. * they appear.
  8055. */
  8056. cljs.core.frequencies = (function frequencies(coll){
  8057. return cljs.core.reduce.call(null,(function (counts,x){
  8058. return cljs.core.assoc.call(null,counts,x,cljs.core.inc.call(null,cljs.core.get.call(null,counts,x,0)));
  8059. }),cljs.core.ObjMap.fromObject([],{}),coll);
  8060. });
  8061. /**
  8062. * Returns a lazy seq of the intermediate values of the reduction (as
  8063. * per reduce) of coll by f, starting with init.
  8064. */
  8065. cljs.core.reductions = (function() {
  8066. var reductions = null;
  8067. var reductions__3143 = (function (f,coll){
  8068. return (new cljs.core.LazySeq(null,false,(function (){
  8069. var temp__3723__auto____3139 = cljs.core.seq.call(null,coll);
  8070.  
  8071. if(cljs.core.truth_(temp__3723__auto____3139))
  8072. {var s__3140 = temp__3723__auto____3139;
  8073.  
  8074. return reductions.call(null,f,cljs.core.first.call(null,s__3140),cljs.core.rest.call(null,s__3140));
  8075. } else
  8076. {return cljs.core.list.call(null,f.call(null));
  8077. }
  8078. })));
  8079. });
  8080. var reductions__3144 = (function (f,init,coll){
  8081. return cljs.core.cons.call(null,init,(new cljs.core.LazySeq(null,false,(function (){
  8082. var temp__3726__auto____3141 = cljs.core.seq.call(null,coll);
  8083.  
  8084. if(cljs.core.truth_(temp__3726__auto____3141))
  8085. {var s__3142 = temp__3726__auto____3141;
  8086.  
  8087. return reductions.call(null,f,f.call(null,init,cljs.core.first.call(null,s__3142)),cljs.core.rest.call(null,s__3142));
  8088. } else
  8089. {return null;
  8090. }
  8091. }))));
  8092. });
  8093. reductions = function(f,init,coll){
  8094. switch(arguments.length){
  8095. case  2 :
  8096. return reductions__3143.call(this,f,init);
  8097. case  3 :
  8098. return reductions__3144.call(this,f,init,coll);
  8099. }
  8100. throw('Invalid arity: ' + arguments.length);
  8101. };
  8102. return reductions;
  8103. })()
  8104. ;
  8105. /**
  8106. * Takes a set of functions and returns a fn that is the juxtaposition
  8107. * of those fns.  The returned fn takes a variable number of args, and
  8108. * returns a vector containing the result of applying each fn to the
  8109. * args (left-to-right).
  8110. * ((juxt a b c) x) => [(a x) (b x) (c x)]
  8111. *
  8112. * TODO: Implement apply
  8113. * @param {...*} var_args
  8114. */
  8115. cljs.core.juxt = (function() {
  8116. var juxt = null;
  8117. var juxt__3147 = (function (f){
  8118. return (function() {
  8119. var G__3152 = null;
  8120. var G__3152__3153 = (function (){
  8121. return cljs.core.vector.call(null,f.call(null));
  8122. });
  8123. var G__3152__3154 = (function (x){
  8124. return cljs.core.vector.call(null,f.call(null,x));
  8125. });
  8126. var G__3152__3155 = (function (x,y){
  8127. return cljs.core.vector.call(null,f.call(null,x,y));
  8128. });
  8129. var G__3152__3156 = (function (x,y,z){
  8130. return cljs.core.vector.call(null,f.call(null,x,y,z));
  8131. });
  8132. var G__3152__3157 = (function() {
  8133. var G__3159__delegate = function (x,y,z,args){
  8134. return cljs.core.vector.call(null,cljs.core.apply.call(null,f,x,y,z,args));
  8135. };
  8136. var G__3159 = function (x,y,z,var_args){
  8137. var args = null;
  8138. if (goog.isDef(var_args)) {
  8139.   args = cljs.core.array_seq(Array.prototype.slice.call(arguments, 3),0);
  8140. }
  8141. return G__3159__delegate.call(this, x, y, z, args);
  8142. };
  8143. G__3159.cljs$lang$maxFixedArity = 3;
  8144. G__3159.cljs$lang$applyTo = (function (arglist__3160){
  8145. var x = cljs.core.first(arglist__3160);
  8146. var y = cljs.core.first(cljs.core.next(arglist__3160));
  8147. var z = cljs.core.first(cljs.core.next(cljs.core.next(arglist__3160)));
  8148. var args = cljs.core.rest(cljs.core.next(cljs.core.next(arglist__3160)));
  8149. return G__3159__delegate.call(this, x, y, z, args);
  8150. });
  8151. return G__3159;
  8152. })()
  8153. ;
  8154. G__3152 = function(x,y,z,var_args){
  8155. var args = var_args;
  8156. switch(arguments.length){
  8157. case  0 :
  8158. return G__3152__3153.call(this);
  8159. case  1 :
  8160. return G__3152__3154.call(this,x);
  8161. case  2 :
  8162. return G__3152__3155.call(this,x,y);
  8163. case  3 :
  8164. return G__3152__3156.call(this,x,y,z);
  8165. default:
  8166. return G__3152__3157.apply(this,arguments);
  8167. }
  8168. throw('Invalid arity: ' + arguments.length);
  8169. };
  8170. G__3152.cljs$lang$maxFixedArity = 3;
  8171. G__3152.cljs$lang$applyTo = G__3152__3157.cljs$lang$applyTo;
  8172. return G__3152;
  8173. })()
  8174. });
  8175. var juxt__3148 = (function (f,g){
  8176. return (function() {
  8177. var G__3161 = null;
  8178. var G__3161__3162 = (function (){
  8179. return cljs.core.vector.call(null,f.call(null),g.call(null));
  8180. });
  8181. var G__3161__3163 = (function (x){
  8182. return cljs.core.vector.call(null,f.call(null,x),g.call(null,x));
  8183. });
  8184. var G__3161__3164 = (function (x,y){
  8185. return cljs.core.vector.call(null,f.call(null,x,y),g.call(null,x,y));
  8186. });
  8187. var G__3161__3165 = (function (x,y,z){
  8188. return cljs.core.vector.call(null,f.call(null,x,y,z),g.call(null,x,y,z));
  8189. });
  8190. var G__3161__3166 = (function() {
  8191. var G__3168__delegate = function (x,y,z,args){
  8192. return cljs.core.vector.call(null,cljs.core.apply.call(null,f,x,y,z,args),cljs.core.apply.call(null,g,x,y,z,args));
  8193. };
  8194. var G__3168 = function (x,y,z,var_args){
  8195. var args = null;
  8196. if (goog.isDef(var_args)) {
  8197.   args = cljs.core.array_seq(Array.prototype.slice.call(arguments, 3),0);
  8198. }
  8199. return G__3168__delegate.call(this, x, y, z, args);
  8200. };
  8201. G__3168.cljs$lang$maxFixedArity = 3;
  8202. G__3168.cljs$lang$applyTo = (function (arglist__3169){
  8203. var x = cljs.core.first(arglist__3169);
  8204. var y = cljs.core.first(cljs.core.next(arglist__3169));
  8205. var z = cljs.core.first(cljs.core.next(cljs.core.next(arglist__3169)));
  8206. var args = cljs.core.rest(cljs.core.next(cljs.core.next(arglist__3169)));
  8207. return G__3168__delegate.call(this, x, y, z, args);
  8208. });
  8209. return G__3168;
  8210. })()
  8211. ;
  8212. G__3161 = function(x,y,z,var_args){
  8213. var args = var_args;
  8214. switch(arguments.length){
  8215. case  0 :
  8216. return G__3161__3162.call(this);
  8217. case  1 :
  8218. return G__3161__3163.call(this,x);
  8219. case  2 :
  8220. return G__3161__3164.call(this,x,y);
  8221. case  3 :
  8222. return G__3161__3165.call(this,x,y,z);
  8223. default:
  8224. return G__3161__3166.apply(this,arguments);
  8225. }
  8226. throw('Invalid arity: ' + arguments.length);
  8227. };
  8228. G__3161.cljs$lang$maxFixedArity = 3;
  8229. G__3161.cljs$lang$applyTo = G__3161__3166.cljs$lang$applyTo;
  8230. return G__3161;
  8231. })()
  8232. });
  8233. var juxt__3149 = (function (f,g,h){
  8234. return (function() {
  8235. var G__3170 = null;
  8236. var G__3170__3171 = (function (){
  8237. return cljs.core.vector.call(null,f.call(null),g.call(null),h.call(null));
  8238. });
  8239. var G__3170__3172 = (function (x){
  8240. return cljs.core.vector.call(null,f.call(null,x),g.call(null,x),h.call(null,x));
  8241. });
  8242. var G__3170__3173 = (function (x,y){
  8243. return cljs.core.vector.call(null,f.call(null,x,y),g.call(null,x,y),h.call(null,x,y));
  8244. });
  8245. var G__3170__3174 = (function (x,y,z){
  8246. return cljs.core.vector.call(null,f.call(null,x,y,z),g.call(null,x,y,z),h.call(null,x,y,z));
  8247. });
  8248. var G__3170__3175 = (function() {
  8249. var G__3177__delegate = function (x,y,z,args){
  8250. return cljs.core.vector.call(null,cljs.core.apply.call(null,f,x,y,z,args),cljs.core.apply.call(null,g,x,y,z,args),cljs.core.apply.call(null,h,x,y,z,args));
  8251. };
  8252. var G__3177 = function (x,y,z,var_args){
  8253. var args = null;
  8254. if (goog.isDef(var_args)) {
  8255.   args = cljs.core.array_seq(Array.prototype.slice.call(arguments, 3),0);
  8256. }
  8257. return G__3177__delegate.call(this, x, y, z, args);
  8258. };
  8259. G__3177.cljs$lang$maxFixedArity = 3;
  8260. G__3177.cljs$lang$applyTo = (function (arglist__3178){
  8261. var x = cljs.core.first(arglist__3178);
  8262. var y = cljs.core.first(cljs.core.next(arglist__3178));
  8263. var z = cljs.core.first(cljs.core.next(cljs.core.next(arglist__3178)));
  8264. var args = cljs.core.rest(cljs.core.next(cljs.core.next(arglist__3178)));
  8265. return G__3177__delegate.call(this, x, y, z, args);
  8266. });
  8267. return G__3177;
  8268. })()
  8269. ;
  8270. G__3170 = function(x,y,z,var_args){
  8271. var args = var_args;
  8272. switch(arguments.length){
  8273. case  0 :
  8274. return G__3170__3171.call(this);
  8275. case  1 :
  8276. return G__3170__3172.call(this,x);
  8277. case  2 :
  8278. return G__3170__3173.call(this,x,y);
  8279. case  3 :
  8280. return G__3170__3174.call(this,x,y,z);
  8281. default:
  8282. return G__3170__3175.apply(this,arguments);
  8283. }
  8284. throw('Invalid arity: ' + arguments.length);
  8285. };
  8286. G__3170.cljs$lang$maxFixedArity = 3;
  8287. G__3170.cljs$lang$applyTo = G__3170__3175.cljs$lang$applyTo;
  8288. return G__3170;
  8289. })()
  8290. });
  8291. var juxt__3150 = (function() {
  8292. var G__3179__delegate = function (f,g,h,fs){
  8293. var fs__3146 = cljs.core.list_STAR_.call(null,f,g,h,fs);
  8294.  
  8295. return (function() {
  8296. var G__3180 = null;
  8297. var G__3180__3181 = (function (){
  8298. return cljs.core.reduce.call(null,(function (p1__3129_SHARP_,p2__3130_SHARP_){
  8299. return cljs.core.conj.call(null,p1__3129_SHARP_,p2__3130_SHARP_.call(null));
  8300. }),cljs.core.Vector.fromArray([]),fs__3146);
  8301. });
  8302. var G__3180__3182 = (function (x){
  8303. return cljs.core.reduce.call(null,(function (p1__3131_SHARP_,p2__3132_SHARP_){
  8304. return cljs.core.conj.call(null,p1__3131_SHARP_,p2__3132_SHARP_.call(null,x));
  8305. }),cljs.core.Vector.fromArray([]),fs__3146);
  8306. });
  8307. var G__3180__3183 = (function (x,y){
  8308. return cljs.core.reduce.call(null,(function (p1__3133_SHARP_,p2__3134_SHARP_){
  8309. return cljs.core.conj.call(null,p1__3133_SHARP_,p2__3134_SHARP_.call(null,x,y));
  8310. }),cljs.core.Vector.fromArray([]),fs__3146);
  8311. });
  8312. var G__3180__3184 = (function (x,y,z){
  8313. return cljs.core.reduce.call(null,(function (p1__3135_SHARP_,p2__3136_SHARP_){
  8314. return cljs.core.conj.call(null,p1__3135_SHARP_,p2__3136_SHARP_.call(null,x,y,z));
  8315. }),cljs.core.Vector.fromArray([]),fs__3146);
  8316. });
  8317. var G__3180__3185 = (function() {
  8318. var G__3187__delegate = function (x,y,z,args){
  8319. return cljs.core.reduce.call(null,(function (p1__3137_SHARP_,p2__3138_SHARP_){
  8320. return cljs.core.conj.call(null,p1__3137_SHARP_,cljs.core.apply.call(null,p2__3138_SHARP_,x,y,z,args));
  8321. }),cljs.core.Vector.fromArray([]),fs__3146);
  8322. };
  8323. var G__3187 = function (x,y,z,var_args){
  8324. var args = null;
  8325. if (goog.isDef(var_args)) {
  8326.   args = cljs.core.array_seq(Array.prototype.slice.call(arguments, 3),0);
  8327. }
  8328. return G__3187__delegate.call(this, x, y, z, args);
  8329. };
  8330. G__3187.cljs$lang$maxFixedArity = 3;
  8331. G__3187.cljs$lang$applyTo = (function (arglist__3188){
  8332. var x = cljs.core.first(arglist__3188);
  8333. var y = cljs.core.first(cljs.core.next(arglist__3188));
  8334. var z = cljs.core.first(cljs.core.next(cljs.core.next(arglist__3188)));
  8335. var args = cljs.core.rest(cljs.core.next(cljs.core.next(arglist__3188)));
  8336. return G__3187__delegate.call(this, x, y, z, args);
  8337. });
  8338. return G__3187;
  8339. })()
  8340. ;
  8341. G__3180 = function(x,y,z,var_args){
  8342. var args = var_args;
  8343. switch(arguments.length){
  8344. case  0 :
  8345. return G__3180__3181.call(this);
  8346. case  1 :
  8347. return G__3180__3182.call(this,x);
  8348. case  2 :
  8349. return G__3180__3183.call(this,x,y);
  8350. case  3 :
  8351. return G__3180__3184.call(this,x,y,z);
  8352. default:
  8353. return G__3180__3185.apply(this,arguments);
  8354. }
  8355. throw('Invalid arity: ' + arguments.length);
  8356. };
  8357. G__3180.cljs$lang$maxFixedArity = 3;
  8358. G__3180.cljs$lang$applyTo = G__3180__3185.cljs$lang$applyTo;
  8359. return G__3180;
  8360. })()
  8361. };
  8362. var G__3179 = function (f,g,h,var_args){
  8363. var fs = null;
  8364. if (goog.isDef(var_args)) {
  8365.   fs = cljs.core.array_seq(Array.prototype.slice.call(arguments, 3),0);
  8366. }
  8367. return G__3179__delegate.call(this, f, g, h, fs);
  8368. };
  8369. G__3179.cljs$lang$maxFixedArity = 3;
  8370. G__3179.cljs$lang$applyTo = (function (arglist__3189){
  8371. var f = cljs.core.first(arglist__3189);
  8372. var g = cljs.core.first(cljs.core.next(arglist__3189));
  8373. var h = cljs.core.first(cljs.core.next(cljs.core.next(arglist__3189)));
  8374. var fs = cljs.core.rest(cljs.core.next(cljs.core.next(arglist__3189)));
  8375. return G__3179__delegate.call(this, f, g, h, fs);
  8376. });
  8377. return G__3179;
  8378. })()
  8379. ;
  8380. juxt = function(f,g,h,var_args){
  8381. var fs = var_args;
  8382. switch(arguments.length){
  8383. case  1 :
  8384. return juxt__3147.call(this,f);
  8385. case  2 :
  8386. return juxt__3148.call(this,f,g);
  8387. case  3 :
  8388. return juxt__3149.call(this,f,g,h);
  8389. default:
  8390. return juxt__3150.apply(this,arguments);
  8391. }
  8392. throw('Invalid arity: ' + arguments.length);
  8393. };
  8394. juxt.cljs$lang$maxFixedArity = 3;
  8395. juxt.cljs$lang$applyTo = juxt__3150.cljs$lang$applyTo;
  8396. return juxt;
  8397. })()
  8398. ;
  8399. /**
  8400. * When lazy sequences are produced via functions that have side
  8401. * effects, any effects other than those needed to produce the first
  8402. * element in the seq do not occur until the seq is consumed. dorun can
  8403. * be used to force any effects. Walks through the successive nexts of
  8404. * the seq, does not retain the head and returns nil.
  8405. */
  8406. cljs.core.dorun = (function() {
  8407. var dorun = null;
  8408. var dorun__3191 = (function (coll){
  8409. var G__3194,G__3195;G__3194=G__3195=new Object();
  8410. while(G__3194===G__3195){
  8411. G__3194=(function(continue_val){
  8412. if(cljs.core.truth_(cljs.core.seq.call(null,coll)))
  8413. {{
  8414. var G__3196 = cljs.core.next.call(null,coll);
  8415. coll = G__3196;
  8416. return continue_val;
  8417. }
  8418. } else
  8419. {return null;
  8420. }
  8421. })(G__3195);}
  8422. return G__3194;
  8423. });
  8424. var dorun__3192 = (function (n,coll){
  8425. var G__3197,G__3198;G__3197=G__3198=new Object();
  8426. while(G__3197===G__3198){
  8427. G__3197=(function(continue_val){
  8428. if(cljs.core.truth_((function (){var and__3574__auto____3190 = cljs.core.seq.call(null,coll);
  8429.  
  8430. if(cljs.core.truth_(and__3574__auto____3190))
  8431. {return cljs.core.pos_QMARK_.call(null,n);
  8432. } else
  8433. {return and__3574__auto____3190;
  8434. }
  8435. })()))
  8436. {{
  8437. var G__3199 = cljs.core.dec.call(null,n);
  8438. var G__3200 = cljs.core.next.call(null,coll);
  8439. n = G__3199;
  8440. coll = G__3200;
  8441. return continue_val;
  8442. }
  8443. } else
  8444. {return null;
  8445. }
  8446. })(G__3198);}
  8447. return G__3197;
  8448. });
  8449. dorun = function(n,coll){
  8450. switch(arguments.length){
  8451. case  1 :
  8452. return dorun__3191.call(this,n);
  8453. case  2 :
  8454. return dorun__3192.call(this,n,coll);
  8455. }
  8456. throw('Invalid arity: ' + arguments.length);
  8457. };
  8458. return dorun;
  8459. })()
  8460. ;
  8461. /**
  8462. * When lazy sequences are produced via functions that have side
  8463. * effects, any effects other than those needed to produce the first
  8464. * element in the seq do not occur until the seq is consumed. doall can
  8465. * be used to force any effects. Walks through the successive nexts of
  8466. * the seq, retains the head and returns it, thus causing the entire
  8467. * seq to reside in memory at one time.
  8468. */
  8469. cljs.core.doall = (function() {
  8470. var doall = null;
  8471. var doall__3201 = (function (coll){
  8472. cljs.core.dorun.call(null,coll);
  8473. return coll;
  8474. });
  8475. var doall__3202 = (function (n,coll){
  8476. cljs.core.dorun.call(null,n,coll);
  8477. return coll;
  8478. });
  8479. doall = function(n,coll){
  8480. switch(arguments.length){
  8481. case  1 :
  8482. return doall__3201.call(this,n);
  8483. case  2 :
  8484. return doall__3202.call(this,n,coll);
  8485. }
  8486. throw('Invalid arity: ' + arguments.length);
  8487. };
  8488. return doall;
  8489. })()
  8490. ;
  8491. /**
  8492. * Returns the result of (re-find re s) if re fully matches s.
  8493. */
  8494. cljs.core.re_matches = (function re_matches(re,s){
  8495. var matches__3204 = re.exec(s);
  8496.  
  8497. if(cljs.core.truth_(cljs.core._EQ_.call(null,cljs.core.first.call(null,matches__3204),s)))
  8498. {if(cljs.core.truth_(cljs.core._EQ_.call(null,cljs.core.count.call(null,matches__3204),1)))
  8499. {return cljs.core.first.call(null,matches__3204);
  8500. } else
  8501. {return cljs.core.vec.call(null,matches__3204);
  8502. }
  8503. } else
  8504. {return null;
  8505. }
  8506. });
  8507. /**
  8508. * Returns the first regex match, if any, of s to re, using
  8509. * re.exec(s). Returns a vector, containing first the matching
  8510. * substring, then any capturing groups if the regular expression contains
  8511. * capturing groups.
  8512. */
  8513. cljs.core.re_find = (function re_find(re,s){
  8514. var matches__3205 = re.exec(s);
  8515.  
  8516. if(cljs.core.truth_(cljs.core.nil_QMARK_.call(null,matches__3205)))
  8517. {return null;
  8518. } else
  8519. {if(cljs.core.truth_(cljs.core._EQ_.call(null,cljs.core.count.call(null,matches__3205),1)))
  8520. {return cljs.core.first.call(null,matches__3205);
  8521. } else
  8522. {return cljs.core.vec.call(null,matches__3205);
  8523. }
  8524. }
  8525. });
  8526. /**
  8527. * Returns a lazy sequence of successive matches of re in s.
  8528. */
  8529. cljs.core.re_seq = (function re_seq(re,s){
  8530. var match_data__3206 = cljs.core.re_find.call(null,re,s);
  8531. var match_idx__3207 = s.search(re);
  8532. var match_str__3208 = (cljs.core.truth_(cljs.core.coll_QMARK_.call(null,match_data__3206))?cljs.core.first.call(null,match_data__3206):match_data__3206);
  8533. var post_match__3209 = cljs.core.subs.call(null,s,cljs.core._PLUS_.call(null,match_idx__3207,cljs.core.count.call(null,match_str__3208)));
  8534.  
  8535. if(cljs.core.truth_(match_data__3206))
  8536. {return (new cljs.core.LazySeq(null,false,(function (){
  8537. return cljs.core.cons.call(null,match_data__3206,re_seq.call(null,re,post_match__3209));
  8538. })));
  8539. } else
  8540. {return null;
  8541. }
  8542. });
  8543. /**
  8544. * Returns an instance of RegExp which has compiled the provided string.
  8545. */
  8546. cljs.core.re_pattern = (function re_pattern(s){
  8547. return (new goog.global['RegExp'](s));
  8548. });
  8549. cljs.core.pr_sequential = (function pr_sequential(print_one,begin,sep,end,opts,coll){
  8550. return cljs.core.concat.call(null,cljs.core.Vector.fromArray([begin]),cljs.core.flatten1.call(null,cljs.core.interpose.call(null,cljs.core.Vector.fromArray([sep]),cljs.core.map.call(null,(function (p1__3210_SHARP_){
  8551. return print_one.call(null,p1__3210_SHARP_,opts);
  8552. }),coll))),cljs.core.Vector.fromArray([end]));
  8553. });
  8554. cljs.core.string_print = (function string_print(x){
  8555. goog.global['print'].call(null,x);
  8556. return null;
  8557. });
  8558. cljs.core.flush = (function flush(){
  8559. return null;
  8560. });
  8561. cljs.core.pr_seq = (function pr_seq(obj,opts){
  8562. if(cljs.core.truth_(cljs.core.nil_QMARK_.call(null,obj)))
  8563. {return cljs.core.list.call(null,"nil");
  8564. } else
  8565. {if(cljs.core.truth_(cljs.core.undefined_QMARK_.call(null,obj)))
  8566. {return cljs.core.list.call(null,"#<undefined>");
  8567. } else
  8568. {if(cljs.core.truth_("﷐'else"))
  8569. {return cljs.core.concat.call(null,(cljs.core.truth_((function (){var and__3574__auto____3211 = cljs.core.get.call(null,opts,"﷐'meta");
  8570.  
  8571. if(cljs.core.truth_(and__3574__auto____3211))
  8572. {var and__3574__auto____3214 = (function (){var x__105__auto____3212 = obj;
  8573.  
  8574. if(cljs.core.truth_((function (){var and__3574__auto____3213 = x__105__auto____3212;
  8575.  
  8576. if(cljs.core.truth_(and__3574__auto____3213))
  8577. {return x__105__auto____3212.cljs$core$IMeta$;
  8578. } else
  8579. {return and__3574__auto____3213;
  8580. }
  8581. })()))
  8582. {return true;
  8583. } else
  8584. {return cljs.core.type_satisfies_.call(null,cljs.core.IMeta,x__105__auto____3212);
  8585. }
  8586. })();
  8587.  
  8588. if(cljs.core.truth_(and__3574__auto____3214))
  8589. {return cljs.core.meta.call(null,obj);
  8590. } else
  8591. {return and__3574__auto____3214;
  8592. }
  8593. } else
  8594. {return and__3574__auto____3211;
  8595. }
  8596. })())?cljs.core.concat.call(null,cljs.core.Vector.fromArray(["^"]),pr_seq.call(null,cljs.core.meta.call(null,obj),opts),cljs.core.Vector.fromArray([" "])):null),(cljs.core.truth_((function (){var x__105__auto____3215 = obj;
  8597.  
  8598. if(cljs.core.truth_((function (){var and__3574__auto____3216 = x__105__auto____3215;
  8599.  
  8600. if(cljs.core.truth_(and__3574__auto____3216))
  8601. {return x__105__auto____3215.cljs$core$IPrintable$;
  8602. } else
  8603. {return and__3574__auto____3216;
  8604. }
  8605. })()))
  8606. {return true;
  8607. } else
  8608. {return cljs.core.type_satisfies_.call(null,cljs.core.IPrintable,x__105__auto____3215);
  8609. }
  8610. })())?cljs.core._pr_seq.call(null,obj,opts):cljs.core.list.call(null,"#<",cljs.core.str.call(null,obj),">")));
  8611. } else
  8612. {return null;
  8613. }
  8614. }
  8615. }
  8616. });
  8617. /**
  8618. * Prints a sequence of objects to a string, observing all the
  8619. * options given in opts
  8620. */
  8621. cljs.core.pr_str_with_opts = (function pr_str_with_opts(objs,opts){
  8622. var first_obj__3217 = cljs.core.first.call(null,objs);
  8623. var sb__3218 = (new goog.string.StringBuffer());
  8624.  
  8625. var G__3219__3220 = cljs.core.seq.call(null,objs);
  8626.  
  8627. var G__3225,G__3226;G__3225=G__3226=new Object();
  8628. while(G__3225===G__3226){
  8629. G__3225=(function(continue_val){
  8630. if(cljs.core.truth_(G__3219__3220))
  8631. {var obj__3221 = cljs.core.first.call(null,G__3219__3220);
  8632.  
  8633. if(cljs.core.truth_(cljs.core.identical_QMARK_.call(null,obj__3221,first_obj__3217)))
  8634. {} else
  8635. {sb__3218.append(" ");
  8636. }
  8637. var G__3222__3223 = cljs.core.seq.call(null,cljs.core.pr_seq.call(null,obj__3221,opts));
  8638.  
  8639. var G__3227,G__3228;G__3227=G__3228=new Object();
  8640. while(G__3227===G__3228){
  8641. G__3227=(function(continue_val){
  8642. if(cljs.core.truth_(G__3222__3223))
  8643. {var string__3224 = cljs.core.first.call(null,G__3222__3223);
  8644.  
  8645. sb__3218.append(string__3224);
  8646. {
  8647. var G__3229 = cljs.core.next.call(null,G__3222__3223);
  8648. G__3222__3223 = G__3229;
  8649. return continue_val;
  8650. }
  8651. } else
  8652. {}
  8653. })(G__3228);}
  8654. {
  8655. var G__3230 = cljs.core.next.call(null,G__3219__3220);
  8656. G__3219__3220 = G__3230;
  8657. return continue_val;
  8658. }
  8659. } else
  8660. {}
  8661. })(G__3226);}
  8662. return cljs.core.str.call(null,sb__3218);
  8663. });
  8664. /**
  8665. * Prints a sequence of objects using string-print, observing all
  8666. * the options given in opts
  8667. */
  8668. cljs.core.pr_with_opts = (function pr_with_opts(objs,opts){
  8669. var first_obj__3231 = cljs.core.first.call(null,objs);
  8670.  
  8671. var G__3232__3233 = cljs.core.seq.call(null,objs);
  8672.  
  8673. var G__3238,G__3239;G__3238=G__3239=new Object();
  8674. while(G__3238===G__3239){
  8675. G__3238=(function(continue_val){
  8676. if(cljs.core.truth_(G__3232__3233))
  8677. {var obj__3234 = cljs.core.first.call(null,G__3232__3233);
  8678.  
  8679. if(cljs.core.truth_(cljs.core.identical_QMARK_.call(null,obj__3234,first_obj__3231)))
  8680. {} else
  8681. {cljs.core.string_print.call(null," ");
  8682. }
  8683. var G__3235__3236 = cljs.core.seq.call(null,cljs.core.pr_seq.call(null,obj__3234,opts));
  8684.  
  8685. var G__3240,G__3241;G__3240=G__3241=new Object();
  8686. while(G__3240===G__3241){
  8687. G__3240=(function(continue_val){
  8688. if(cljs.core.truth_(G__3235__3236))
  8689. {var string__3237 = cljs.core.first.call(null,G__3235__3236);
  8690.  
  8691. cljs.core.string_print.call(null,string__3237);
  8692. {
  8693. var G__3242 = cljs.core.next.call(null,G__3235__3236);
  8694. G__3235__3236 = G__3242;
  8695. return continue_val;
  8696. }
  8697. } else
  8698. {}
  8699. })(G__3241);}
  8700. {
  8701. var G__3243 = cljs.core.next.call(null,G__3232__3233);
  8702. G__3232__3233 = G__3243;
  8703. return continue_val;
  8704. }
  8705. } else
  8706. {return null;
  8707. }
  8708. })(G__3239);}
  8709. return G__3238;
  8710. });
  8711. cljs.core.newline = (function newline(opts){
  8712. cljs.core.string_print.call(null,"\n");
  8713. if(cljs.core.truth_(cljs.core.get.call(null,opts,"﷐'flush-on-newline")))
  8714. {return cljs.core.flush.call(null);
  8715. } else
  8716. {return null;
  8717. }
  8718. });
  8719. cljs.core._STAR_flush_on_newline_STAR_ = true;
  8720. cljs.core._STAR_print_readably_STAR_ = true;
  8721. cljs.core._STAR_print_meta_STAR_ = false;
  8722. cljs.core._STAR_print_dup_STAR_ = false;
  8723. cljs.core.pr_opts = (function pr_opts(){
  8724. return cljs.core.ObjMap.fromObject(["﷐'flush-on-newline","﷐'readably","﷐'meta","﷐'dup"],{"﷐'flush-on-newline":cljs.core._STAR_flush_on_newline_STAR_,"﷐'readably":cljs.core._STAR_print_readably_STAR_,"﷐'meta":cljs.core._STAR_print_meta_STAR_,"﷐'dup":cljs.core._STAR_print_dup_STAR_});
  8725. });
  8726. /**
  8727. * pr to a string, returning it. Fundamental entrypoint to IPrintable.
  8728. * @param {...*} var_args
  8729. */
  8730. cljs.core.pr_str = (function() {
  8731. var pr_str__delegate = function (objs){
  8732. return cljs.core.pr_str_with_opts.call(null,objs,cljs.core.pr_opts.call(null));
  8733. };
  8734. var pr_str = function (var_args){
  8735. var objs = null;
  8736. if (goog.isDef(var_args)) {
  8737.   objs = cljs.core.array_seq(Array.prototype.slice.call(arguments, 0),0);
  8738. }
  8739. return pr_str__delegate.call(this, objs);
  8740. };
  8741. pr_str.cljs$lang$maxFixedArity = 0;
  8742. pr_str.cljs$lang$applyTo = (function (arglist__3244){
  8743. var objs = cljs.core.seq( arglist__3244 );;
  8744. return pr_str__delegate.call(this, objs);
  8745. });
  8746. return pr_str;
  8747. })()
  8748. ;
  8749. /**
  8750. * Prints the object(s) using string-print.  Prints the
  8751. * object(s), separated by spaces if there is more than one.
  8752. * By default, pr and prn print in a way that objects can be
  8753. * read by the reader
  8754. * @param {...*} var_args
  8755. */
  8756. cljs.core.pr = (function() {
  8757. var pr__delegate = function (objs){
  8758. return cljs.core.pr_with_opts.call(null,objs,cljs.core.pr_opts.call(null));
  8759. };
  8760. var pr = function (var_args){
  8761. var objs = null;
  8762. if (goog.isDef(var_args)) {
  8763.   objs = cljs.core.array_seq(Array.prototype.slice.call(arguments, 0),0);
  8764. }
  8765. return pr__delegate.call(this, objs);
  8766. };
  8767. pr.cljs$lang$maxFixedArity = 0;
  8768. pr.cljs$lang$applyTo = (function (arglist__3245){
  8769. var objs = cljs.core.seq( arglist__3245 );;
  8770. return pr__delegate.call(this, objs);
  8771. });
  8772. return pr;
  8773. })()
  8774. ;
  8775. /**
  8776. * Prints the object(s) using string-print.
  8777. * print and println produce output for human consumption.
  8778. * @param {...*} var_args
  8779. */
  8780. cljs.core.print = (function() {
  8781. var cljs_core_print__delegate = function (objs){
  8782. return cljs.core.pr_with_opts.call(null,objs,cljs.core.assoc.call(null,cljs.core.pr_opts.call(null),"﷐'readably",false));
  8783. };
  8784. var cljs_core_print = function (var_args){
  8785. var objs = null;
  8786. if (goog.isDef(var_args)) {
  8787.   objs = cljs.core.array_seq(Array.prototype.slice.call(arguments, 0),0);
  8788. }
  8789. return cljs_core_print__delegate.call(this, objs);
  8790. };
  8791. cljs_core_print.cljs$lang$maxFixedArity = 0;
  8792. cljs_core_print.cljs$lang$applyTo = (function (arglist__3246){
  8793. var objs = cljs.core.seq( arglist__3246 );;
  8794. return cljs_core_print__delegate.call(this, objs);
  8795. });
  8796. return cljs_core_print;
  8797. })()
  8798. ;
  8799. /**
  8800. * Same as print followed by (newline)
  8801. * @param {...*} var_args
  8802. */
  8803. cljs.core.println = (function() {
  8804. var println__delegate = function (objs){
  8805. cljs.core.pr_with_opts.call(null,objs,cljs.core.assoc.call(null,cljs.core.pr_opts.call(null),"﷐'readably",false));
  8806. return cljs.core.newline.call(null,cljs.core.pr_opts.call(null));
  8807. };
  8808. var println = function (var_args){
  8809. var objs = null;
  8810. if (goog.isDef(var_args)) {
  8811.   objs = cljs.core.array_seq(Array.prototype.slice.call(arguments, 0),0);
  8812. }
  8813. return println__delegate.call(this, objs);
  8814. };
  8815. println.cljs$lang$maxFixedArity = 0;
  8816. println.cljs$lang$applyTo = (function (arglist__3247){
  8817. var objs = cljs.core.seq( arglist__3247 );;
  8818. return println__delegate.call(this, objs);
  8819. });
  8820. return println;
  8821. })()
  8822. ;
  8823. /**
  8824. * Same as pr followed by (newline).
  8825. * @param {...*} var_args
  8826. */
  8827. cljs.core.prn = (function() {
  8828. var prn__delegate = function (objs){
  8829. cljs.core.pr_with_opts.call(null,objs,cljs.core.pr_opts.call(null));
  8830. return cljs.core.newline.call(null,cljs.core.pr_opts.call(null));
  8831. };
  8832. var prn = function (var_args){
  8833. var objs = null;
  8834. if (goog.isDef(var_args)) {
  8835.   objs = cljs.core.array_seq(Array.prototype.slice.call(arguments, 0),0);
  8836. }
  8837. return prn__delegate.call(this, objs);
  8838. };
  8839. prn.cljs$lang$maxFixedArity = 0;
  8840. prn.cljs$lang$applyTo = (function (arglist__3248){
  8841. var objs = cljs.core.seq( arglist__3248 );;
  8842. return prn__delegate.call(this, objs);
  8843. });
  8844. return prn;
  8845. })()
  8846. ;
  8847. cljs.core.HashMap.prototype.cljs$core$IPrintable$ = true;
  8848. cljs.core.HashMap.prototype.cljs$core$IPrintable$_pr_seq = (function (coll,opts){
  8849. var pr_pair__3249 = (function (keyval){
  8850. return cljs.core.pr_sequential.call(null,cljs.core.pr_seq,""," ","",opts,keyval);
  8851. });
  8852.  
  8853. return cljs.core.pr_sequential.call(null,pr_pair__3249,"{",", ","}",opts,coll);
  8854. });
  8855. (cljs.core.IPrintable["number"] = true);
  8856. (cljs.core._pr_seq["number"] = (function (n,opts){
  8857. return cljs.core.list.call(null,cljs.core.str.call(null,n));
  8858. }));
  8859. cljs.core.IndexedSeq.prototype.cljs$core$IPrintable$ = true;
  8860. cljs.core.IndexedSeq.prototype.cljs$core$IPrintable$_pr_seq = (function (coll,opts){
  8861. return cljs.core.pr_sequential.call(null,cljs.core.pr_seq,"("," ",")",opts,coll);
  8862. });
  8863. cljs.core.LazySeq.prototype.cljs$core$IPrintable$ = true;
  8864. cljs.core.LazySeq.prototype.cljs$core$IPrintable$_pr_seq = (function (coll,opts){
  8865. return cljs.core.pr_sequential.call(null,cljs.core.pr_seq,"("," ",")",opts,coll);
  8866. });
  8867. (cljs.core.IPrintable["boolean"] = true);
  8868. (cljs.core._pr_seq["boolean"] = (function (bool,opts){
  8869. return cljs.core.list.call(null,cljs.core.str.call(null,bool));
  8870. }));
  8871. cljs.core.Set.prototype.cljs$core$IPrintable$ = true;
  8872. cljs.core.Set.prototype.cljs$core$IPrintable$_pr_seq = (function (coll,opts){
  8873. return cljs.core.pr_sequential.call(null,cljs.core.pr_seq,"#{"," ","}",opts,coll);
  8874. });
  8875. (cljs.core.IPrintable["string"] = true);
  8876. (cljs.core._pr_seq["string"] = (function (obj,opts){
  8877. if(cljs.core.truth_(cljs.core.keyword_QMARK_.call(null,obj)))
  8878. {return cljs.core.list.call(null,cljs.core.str.call(null,":",(function (){var temp__3726__auto____3250 = cljs.core.namespace.call(null,obj);
  8879.  
  8880. if(cljs.core.truth_(temp__3726__auto____3250))
  8881. {var nspc__3251 = temp__3726__auto____3250;
  8882.  
  8883. return cljs.core.str.call(null,nspc__3251,"/");
  8884. } else
  8885. {return null;
  8886. }
  8887. })(),cljs.core.name.call(null,obj)));
  8888. } else
  8889. {if(cljs.core.truth_(cljs.core.symbol_QMARK_.call(null,obj)))
  8890. {return cljs.core.list.call(null,cljs.core.str.call(null,(function (){var temp__3726__auto____3252 = cljs.core.namespace.call(null,obj);
  8891.  
  8892. if(cljs.core.truth_(temp__3726__auto____3252))
  8893. {var nspc__3253 = temp__3726__auto____3252;
  8894.  
  8895. return cljs.core.str.call(null,nspc__3253,"/");
  8896. } else
  8897. {return null;
  8898. }
  8899. })(),cljs.core.name.call(null,obj)));
  8900. } else
  8901. {if(cljs.core.truth_("﷐'else"))
  8902. {return cljs.core.list.call(null,(cljs.core.truth_("﷐'readably".call(null,opts))?goog.string.quote.call(null,obj):obj));
  8903. } else
  8904. {return null;
  8905. }
  8906. }
  8907. }
  8908. }));
  8909. cljs.core.Vector.prototype.cljs$core$IPrintable$ = true;
  8910. cljs.core.Vector.prototype.cljs$core$IPrintable$_pr_seq = (function (coll,opts){
  8911. return cljs.core.pr_sequential.call(null,cljs.core.pr_seq,"["," ","]",opts,coll);
  8912. });
  8913. cljs.core.List.prototype.cljs$core$IPrintable$ = true;
  8914. cljs.core.List.prototype.cljs$core$IPrintable$_pr_seq = (function (coll,opts){
  8915. return cljs.core.pr_sequential.call(null,cljs.core.pr_seq,"("," ",")",opts,coll);
  8916. });
  8917. (cljs.core.IPrintable["array"] = true);
  8918. (cljs.core._pr_seq["array"] = (function (a,opts){
  8919. return cljs.core.pr_sequential.call(null,cljs.core.pr_seq,"#<Array [",", ","]>",opts,a);
  8920. }));
  8921. cljs.core.EmptyList.prototype.cljs$core$IPrintable$ = true;
  8922. cljs.core.EmptyList.prototype.cljs$core$IPrintable$_pr_seq = (function (coll,opts){
  8923. return cljs.core.list.call(null,"()");
  8924. });
  8925. cljs.core.Cons.prototype.cljs$core$IPrintable$ = true;
  8926. cljs.core.Cons.prototype.cljs$core$IPrintable$_pr_seq = (function (coll,opts){
  8927. return cljs.core.pr_sequential.call(null,cljs.core.pr_seq,"("," ",")",opts,coll);
  8928. });
  8929. cljs.core.ObjMap.prototype.cljs$core$IPrintable$ = true;
  8930. cljs.core.ObjMap.prototype.cljs$core$IPrintable$_pr_seq = (function (coll,opts){
  8931. var pr_pair__3254 = (function (keyval){
  8932. return cljs.core.pr_sequential.call(null,cljs.core.pr_seq,""," ","",opts,keyval);
  8933. });
  8934.  
  8935. return cljs.core.pr_sequential.call(null,pr_pair__3254,"{",", ","}",opts,coll);
  8936. });
  8937.  
  8938. /**
  8939. * @constructor
  8940. */
  8941. cljs.core.Atom = (function (state,meta,validator){
  8942. this.state = state;
  8943. this.meta = meta;
  8944. this.validator = validator;
  8945. })
  8946. cljs.core.Atom.prototype.cljs$core$IPrintable$ = true;
  8947. cljs.core.Atom.prototype.cljs$core$IPrintable$_pr_seq = (function (a,opts){
  8948. var this__3255 = this;
  8949. return cljs.core.concat.call(null,cljs.core.Vector.fromArray(["#<Atom: "]),cljs.core._pr_seq.call(null,this__3255.state,opts),">");
  8950. });
  8951. cljs.core.Atom.prototype.cljs$core$IMeta$ = true;
  8952. cljs.core.Atom.prototype.cljs$core$IMeta$_meta = (function (_){
  8953. var this__3256 = this;
  8954. return this__3256.meta;
  8955. });
  8956. cljs.core.Atom.prototype.cljs$core$IDeref$ = true;
  8957. cljs.core.Atom.prototype.cljs$core$IDeref$_deref = (function (_){
  8958. var this__3257 = this;
  8959. return this__3257.state;
  8960. });
  8961. cljs.core.Atom.prototype.cljs$core$IEquiv$ = true;
  8962. cljs.core.Atom.prototype.cljs$core$IEquiv$_equiv = (function (o,other){
  8963. var this__3258 = this;
  8964. return cljs.core.identical_QMARK_.call(null,o,other);
  8965. });
  8966. /**
  8967. * Creates and returns an Atom with an initial value of x and zero or
  8968. * more options (in any order):
  8969. *
  8970. * :meta metadata-map
  8971. *
  8972. * :validator validate-fn
  8973. *
  8974. * If metadata-map is supplied, it will be come the metadata on the
  8975. * atom. validate-fn must be nil or a side-effect-free fn of one
  8976. * argument, which will be passed the intended new state on any state
  8977. * change. If the new state is unacceptable, the validate-fn should
  8978. * return false or throw an exception.
  8979. * @param {...*} var_args
  8980. */
  8981. cljs.core.atom = (function() {
  8982. var atom = null;
  8983. var atom__3265 = (function (x){
  8984. return (new cljs.core.Atom(x,null,null));
  8985. });
  8986. var atom__3266 = (function() {
  8987. var G__3268__delegate = function (x,p__3259){
  8988. var map__3260__3261 = p__3259;
  8989. var map__3260__3262 = (cljs.core.truth_(cljs.core.seq_QMARK_.call(null,map__3260__3261))?cljs.core.apply.call(null,cljs.core.hash_map,map__3260__3261):map__3260__3261);
  8990. var validator__3263 = cljs.core.get.call(null,map__3260__3262,"﷐'validator");
  8991. var meta__3264 = cljs.core.get.call(null,map__3260__3262,"﷐'meta");
  8992.  
  8993. return (new cljs.core.Atom(x,meta__3264,validator__3263));
  8994. };
  8995. var G__3268 = function (x,var_args){
  8996. var p__3259 = null;
  8997. if (goog.isDef(var_args)) {
  8998.   p__3259 = cljs.core.array_seq(Array.prototype.slice.call(arguments, 1),0);
  8999. }
  9000. return G__3268__delegate.call(this, x, p__3259);
  9001. };
  9002. G__3268.cljs$lang$maxFixedArity = 1;
  9003. G__3268.cljs$lang$applyTo = (function (arglist__3269){
  9004. var x = cljs.core.first(arglist__3269);
  9005. var p__3259 = cljs.core.rest(arglist__3269);
  9006. return G__3268__delegate.call(this, x, p__3259);
  9007. });
  9008. return G__3268;
  9009. })()
  9010. ;
  9011. atom = function(x,var_args){
  9012. var p__3259 = var_args;
  9013. switch(arguments.length){
  9014. case  1 :
  9015. return atom__3265.call(this,x);
  9016. default:
  9017. return atom__3266.apply(this,arguments);
  9018. }
  9019. throw('Invalid arity: ' + arguments.length);
  9020. };
  9021. atom.cljs$lang$maxFixedArity = 1;
  9022. atom.cljs$lang$applyTo = atom__3266.cljs$lang$applyTo;
  9023. return atom;
  9024. })()
  9025. ;
  9026. /**
  9027. * Sets the value of atom to newval without regard for the
  9028. * current value. Returns newval.
  9029. */
  9030. cljs.core.reset_BANG_ = (function reset_BANG_(a,newval){
  9031. var temp__3726__auto____3270 = a.validator;
  9032.  
  9033. if(cljs.core.truth_(temp__3726__auto____3270))
  9034. {var v__3271 = temp__3726__auto____3270;
  9035.  
  9036. if(cljs.core.truth_(v__3271.call(null,newval)))
  9037. {} else
  9038. {throw "Validator rejected reference state";
  9039. }
  9040. } else
  9041. {}
  9042. return a.state = newval;
  9043. });
  9044. /**
  9045. * Atomically swaps the value of atom to be:
  9046. * (apply f current-value-of-atom args). Note that f may be called
  9047. * multiple times, and thus should be free of side effects.  Returns
  9048. * the value that was swapped in.
  9049. * @param {...*} var_args
  9050. */
  9051. cljs.core.swap_BANG_ = (function() {
  9052. var swap_BANG_ = null;
  9053. var swap_BANG___3272 = (function (a,f){
  9054. return cljs.core.reset_BANG_.call(null,a,f.call(null,a.state));
  9055. });
  9056. var swap_BANG___3273 = (function (a,f,x){
  9057. return cljs.core.reset_BANG_.call(null,a,f.call(null,a.state,x));
  9058. });
  9059. var swap_BANG___3274 = (function (a,f,x,y){
  9060. return cljs.core.reset_BANG_.call(null,a,f.call(null,a.state,x,y));
  9061. });
  9062. var swap_BANG___3275 = (function (a,f,x,y,z){
  9063. return cljs.core.reset_BANG_.call(null,a,f.call(null,a.state,x,y,z));
  9064. });
  9065. var swap_BANG___3276 = (function() {
  9066. var G__3278__delegate = function (a,f,x,y,z,more){
  9067. return cljs.core.reset_BANG_.call(null,a,cljs.core.apply.call(null,f,a.state,x,y,z,more));
  9068. };
  9069. var G__3278 = function (a,f,x,y,z,var_args){
  9070. var more = null;
  9071. if (goog.isDef(var_args)) {
  9072.   more = cljs.core.array_seq(Array.prototype.slice.call(arguments, 5),0);
  9073. }
  9074. return G__3278__delegate.call(this, a, f, x, y, z, more);
  9075. };
  9076. G__3278.cljs$lang$maxFixedArity = 5;
  9077. G__3278.cljs$lang$applyTo = (function (arglist__3279){
  9078. var a = cljs.core.first(arglist__3279);
  9079. var f = cljs.core.first(cljs.core.next(arglist__3279));
  9080. var x = cljs.core.first(cljs.core.next(cljs.core.next(arglist__3279)));
  9081. var y = cljs.core.first(cljs.core.next(cljs.core.next(cljs.core.next(arglist__3279))));
  9082. var z = cljs.core.first(cljs.core.next(cljs.core.next(cljs.core.next(cljs.core.next(arglist__3279)))));
  9083. var more = cljs.core.rest(cljs.core.next(cljs.core.next(cljs.core.next(cljs.core.next(arglist__3279)))));
  9084. return G__3278__delegate.call(this, a, f, x, y, z, more);
  9085. });
  9086. return G__3278;
  9087. })()
  9088. ;
  9089. swap_BANG_ = function(a,f,x,y,z,var_args){
  9090. var more = var_args;
  9091. switch(arguments.length){
  9092. case  2 :
  9093. return swap_BANG___3272.call(this,a,f);
  9094. case  3 :
  9095. return swap_BANG___3273.call(this,a,f,x);
  9096. case  4 :
  9097. return swap_BANG___3274.call(this,a,f,x,y);
  9098. case  5 :
  9099. return swap_BANG___3275.call(this,a,f,x,y,z);
  9100. default:
  9101. return swap_BANG___3276.apply(this,arguments);
  9102. }
  9103. throw('Invalid arity: ' + arguments.length);
  9104. };
  9105. swap_BANG_.cljs$lang$maxFixedArity = 5;
  9106. swap_BANG_.cljs$lang$applyTo = swap_BANG___3276.cljs$lang$applyTo;
  9107. return swap_BANG_;
  9108. })()
  9109. ;
  9110. /**
  9111. * Atomically sets the value of atom to newval if and only if the
  9112. * current value of the atom is identical to oldval. Returns true if
  9113. * set happened, else false.
  9114. */
  9115. cljs.core.compare_and_set_BANG_ = (function compare_and_set_BANG_(a,oldval,newval){
  9116. if(cljs.core.truth_(cljs.core._EQ_.call(null,a.state,oldval)))
  9117. {cljs.core.reset_BANG_.call(null,a,newval);
  9118. return true;
  9119. } else
  9120. {return false;
  9121. }
  9122. });
  9123. cljs.core.deref = (function deref(o){
  9124. return cljs.core._deref.call(null,o);
  9125. });
  9126. /**
  9127. * Sets the validator-fn for a var/ref/agent/atom. validator-fn must be nil or a
  9128. * side-effect-free fn of one argument, which will be passed the intended
  9129. * new state on any state change. If the new state is unacceptable, the
  9130. * validator-fn should return false or throw an exception. If the current state (root
  9131. * value if var) is not acceptable to the new validator, an exception
  9132. * will be thrown and the validator will not be changed.
  9133. */
  9134. cljs.core.set_validator_BANG_ = (function set_validator_BANG_(iref,val){
  9135. return iref.validator = val;
  9136. });
  9137. /**
  9138. * Gets the validator-fn for a var/ref/agent/atom.
  9139. */
  9140. cljs.core.get_validator = (function get_validator(iref){
  9141. return iref.validator;
  9142. });
  9143. /**
  9144. * Atomically sets the metadata for a namespace/var/ref/agent/atom to be:
  9145. *
  9146. * (apply f its-current-meta args)
  9147. *
  9148. * f must be free of side-effects
  9149. * @param {...*} var_args
  9150. */
  9151. cljs.core.alter_meta_BANG_ = (function() {
  9152. var alter_meta_BANG___delegate = function (iref,f,args){
  9153. return iref.meta = cljs.core.apply.call(null,f,iref.meta,args);
  9154. };
  9155. var alter_meta_BANG_ = function (iref,f,var_args){
  9156. var args = null;
  9157. if (goog.isDef(var_args)) {
  9158.   args = cljs.core.array_seq(Array.prototype.slice.call(arguments, 2),0);
  9159. }
  9160. return alter_meta_BANG___delegate.call(this, iref, f, args);
  9161. };
  9162. alter_meta_BANG_.cljs$lang$maxFixedArity = 2;
  9163. alter_meta_BANG_.cljs$lang$applyTo = (function (arglist__3280){
  9164. var iref = cljs.core.first(arglist__3280);
  9165. var f = cljs.core.first(cljs.core.next(arglist__3280));
  9166. var args = cljs.core.rest(cljs.core.next(arglist__3280));
  9167. return alter_meta_BANG___delegate.call(this, iref, f, args);
  9168. });
  9169. return alter_meta_BANG_;
  9170. })()
  9171. ;
  9172. /**
  9173. * Atomically resets the metadata for a namespace/var/ref/agent/atom
  9174. */
  9175. cljs.core.reset_meta_BANG_ = (function reset_meta_BANG_(iref,m){
  9176. return iref.meta = m;
  9177. });
  9178. cljs.core.gensym_counter = null;
  9179. /**
  9180. * Returns a new symbol with a unique name. If a prefix string is
  9181. * supplied, the name is prefix# where # is some unique number. If
  9182. * prefix is not supplied, the prefix is 'G__'.
  9183. */
  9184. cljs.core.gensym = (function() {
  9185. var gensym = null;
  9186. var gensym__3281 = (function (){
  9187. return gensym.call(null,"G__");
  9188. });
  9189. var gensym__3282 = (function (prefix_string){
  9190. if(cljs.core.truth_(cljs.core.nil_QMARK_.call(null,cljs.core.gensym_counter)))
  9191. {cljs.core.gensym_counter = cljs.core.atom.call(null,0);
  9192. } else
  9193. {}
  9194. return cljs.core.symbol.call(null,cljs.core.str.call(null,prefix_string,cljs.core.swap_BANG_.call(null,cljs.core.gensym_counter,cljs.core.inc)));
  9195. });
  9196. gensym = function(prefix_string){
  9197. switch(arguments.length){
  9198. case  0 :
  9199. return gensym__3281.call(this);
  9200. case  1 :
  9201. return gensym__3282.call(this,prefix_string);
  9202. }
  9203. throw('Invalid arity: ' + arguments.length);
  9204. };
  9205. return gensym;
  9206. })()
  9207. ;
  9208. cljs.core.fixture1 = 1;
  9209. cljs.core.fixture2 = 2;
  9210.  
  9211. /**
  9212. * @constructor
  9213. */
  9214. cljs.core.Delay = (function (f,state){
  9215. this.f = f;
  9216. this.state = state;
  9217. })
  9218. cljs.core.Delay.prototype.cljs$core$IPending$ = true;
  9219. cljs.core.Delay.prototype.cljs$core$IPending$_realized_QMARK_ = (function (d){
  9220. var this__3284 = this;
  9221. return cljs.core.not.call(null,cljs.core.nil_QMARK_.call(null,cljs.core.deref.call(null,this__3284.state)));
  9222. });
  9223. cljs.core.Delay.prototype.cljs$core$IDeref$ = true;
  9224. cljs.core.Delay.prototype.cljs$core$IDeref$_deref = (function (_){
  9225. var this__3285 = this;
  9226. if(cljs.core.truth_(cljs.core.deref.call(null,this__3285.state)))
  9227. {} else
  9228. {cljs.core.swap_BANG_.call(null,this__3285.state,this__3285.f);
  9229. }
  9230. return cljs.core.deref.call(null,this__3285.state);
  9231. });
  9232. /**
  9233. * Takes a body of expressions and yields a Delay object that will
  9234. * invoke the body only the first time it is forced (with force or deref/@), and
  9235. * will cache the result and return it on all subsequent force
  9236. * calls.
  9237. * @param {...*} var_args
  9238. */
  9239. cljs.core.delay = (function() {
  9240. var delay__delegate = function (body){
  9241. return (new cljs.core.Delay((function (){
  9242. return cljs.core.apply.call(null,cljs.core.identity,body);
  9243. }),cljs.core.atom.call(null,null)));
  9244. };
  9245. var delay = function (var_args){
  9246. var body = null;
  9247. if (goog.isDef(var_args)) {
  9248.   body = cljs.core.array_seq(Array.prototype.slice.call(arguments, 0),0);
  9249. }
  9250. return delay__delegate.call(this, body);
  9251. };
  9252. delay.cljs$lang$maxFixedArity = 0;
  9253. delay.cljs$lang$applyTo = (function (arglist__3286){
  9254. var body = cljs.core.seq( arglist__3286 );;
  9255. return delay__delegate.call(this, body);
  9256. });
  9257. return delay;
  9258. })()
  9259. ;
  9260. /**
  9261. * returns true if x is a Delay created with delay
  9262. */
  9263. cljs.core.delay_QMARK_ = (function delay_QMARK_(x){
  9264. return cljs.core.instance_QMARK_.call(null,cljs.core.Delay,x);
  9265. });
  9266. /**
  9267. * If x is a Delay, returns the (possibly cached) value of its expression, else returns x
  9268. */
  9269. cljs.core.force = (function force(x){
  9270. if(cljs.core.truth_(cljs.core.delay_QMARK_.call(null,x)))
  9271. {return cljs.core.deref.call(null,x);
  9272. } else
  9273. {return x;
  9274. }
  9275. });
  9276. /**
  9277. * Returns true if a value has been produced for a promise, delay, future or lazy sequence.
  9278. */
  9279. cljs.core.realized_QMARK_ = (function realized_QMARK_(d){
  9280. return cljs.core._realized_QMARK_.call(null,d);
  9281. });
  9282. /**
  9283. * Recursively transforms JavaScript arrays into ClojureScript
  9284. * vectors, and JavaScript objects into ClojureScript maps.  With
  9285. * option ':keywordize-keys true' will convert object fields from
  9286. * strings to keywords.
  9287. * @param {...*} var_args
  9288. */
  9289. cljs.core.js__GT_clj = (function() {
  9290. var js__GT_clj__delegate = function (x,options){
  9291. var map__3287__3288 = options;
  9292. var map__3287__3289 = (cljs.core.truth_(cljs.core.seq_QMARK_.call(null,map__3287__3288))?cljs.core.apply.call(null,cljs.core.hash_map,map__3287__3288):map__3287__3288);
  9293. var keywordize_keys__3290 = cljs.core.get.call(null,map__3287__3289,"﷐'keywordize-keys");
  9294. var keyfn__3291 = (cljs.core.truth_(keywordize_keys__3290)?cljs.core.keyword:cljs.core.str);
  9295. var f__3297 = (function thisfn(x){
  9296. if(cljs.core.truth_(cljs.core.seq_QMARK_.call(null,x)))
  9297. {return cljs.core.doall.call(null,cljs.core.map.call(null,thisfn,x));
  9298. } else
  9299. {if(cljs.core.truth_(cljs.core.coll_QMARK_.call(null,x)))
  9300. {return cljs.core.into.call(null,cljs.core.empty.call(null,x),cljs.core.map.call(null,thisfn,x));
  9301. } else
  9302. {if(cljs.core.truth_(goog.isArray.call(null,x)))
  9303. {return cljs.core.vec.call(null,cljs.core.map.call(null,thisfn,x));
  9304. } else
  9305. {if(cljs.core.truth_(goog.isObject.call(null,x)))
  9306. {return cljs.core.into.call(null,cljs.core.ObjMap.fromObject([],{}),(function (){var iter__159__auto____3296 = (function iter__3292(s__3293){
  9307. return (new cljs.core.LazySeq(null,false,(function (){
  9308. var s__3293__3294 = s__3293;
  9309.  
  9310. var G__3298,G__3299;G__3298=G__3299=new Object();
  9311. while(G__3298===G__3299){
  9312. G__3298=(function(continue_val){
  9313. if(cljs.core.truth_(cljs.core.seq.call(null,s__3293__3294)))
  9314. {var k__3295 = cljs.core.first.call(null,s__3293__3294);
  9315.  
  9316. return cljs.core.cons.call(null,cljs.core.Vector.fromArray([keyfn__3291.call(null,k__3295),thisfn.call(null,(x[k__3295]))]),iter__3292.call(null,cljs.core.rest.call(null,s__3293__3294)));
  9317. } else
  9318. {return null;
  9319. }
  9320. })(G__3299);}
  9321. return G__3298;
  9322. })));
  9323. });
  9324.  
  9325. return iter__159__auto____3296.call(null,cljs.core.js_keys.call(null,x));
  9326. })());
  9327. } else
  9328. {if(cljs.core.truth_("﷐'else"))
  9329. {return x;
  9330. } else
  9331. {return null;
  9332. }
  9333. }
  9334. }
  9335. }
  9336. }
  9337. });
  9338.  
  9339. return f__3297.call(null,x);
  9340. };
  9341. var js__GT_clj = function (x,var_args){
  9342. var options = null;
  9343. if (goog.isDef(var_args)) {
  9344.   options = cljs.core.array_seq(Array.prototype.slice.call(arguments, 1),0);
  9345. }
  9346. return js__GT_clj__delegate.call(this, x, options);
  9347. };
  9348. js__GT_clj.cljs$lang$maxFixedArity = 1;
  9349. js__GT_clj.cljs$lang$applyTo = (function (arglist__3300){
  9350. var x = cljs.core.first(arglist__3300);
  9351. var options = cljs.core.rest(arglist__3300);
  9352. return js__GT_clj__delegate.call(this, x, options);
  9353. });
  9354. return js__GT_clj;
  9355. })()
  9356. ;
  9357. /**
  9358. * Returns a memoized version of a referentially transparent function. The
  9359. * memoized version of the function keeps a cache of the mapping from arguments
  9360. * to results and, when calls with the same arguments are repeated often, has
  9361. * higher performance at the expense of higher memory use.
  9362. */
  9363. cljs.core.memoize = (function memoize(f){
  9364. var mem__3301 = cljs.core.atom.call(null,cljs.core.ObjMap.fromObject([],{}));
  9365.  
  9366. return (function() {
  9367. var G__3305__delegate = function (args){
  9368. var temp__3723__auto____3302 = cljs.core.get.call(null,cljs.core.deref.call(null,mem__3301),args);
  9369.  
  9370. if(cljs.core.truth_(temp__3723__auto____3302))
  9371. {var v__3303 = temp__3723__auto____3302;
  9372.  
  9373. return v__3303;
  9374. } else
  9375. {var ret__3304 = cljs.core.apply.call(null,f,args);
  9376.  
  9377. cljs.core.swap_BANG_.call(null,mem__3301,cljs.core.assoc,args,ret__3304);
  9378. return ret__3304;
  9379. }
  9380. };
  9381. var G__3305 = function (var_args){
  9382. var args = null;
  9383. if (goog.isDef(var_args)) {
  9384.   args = cljs.core.array_seq(Array.prototype.slice.call(arguments, 0),0);
  9385. }
  9386. return G__3305__delegate.call(this, args);
  9387. };
  9388. G__3305.cljs$lang$maxFixedArity = 0;
  9389. G__3305.cljs$lang$applyTo = (function (arglist__3306){
  9390. var args = cljs.core.seq( arglist__3306 );;
  9391. return G__3305__delegate.call(this, args);
  9392. });
  9393. return G__3305;
  9394. })()
  9395. ;
  9396. });
  9397. /**
  9398. * trampoline can be used to convert algorithms requiring mutual
  9399. * recursion without stack consumption. Calls f with supplied args, if
  9400. * any. If f returns a fn, calls that fn with no arguments, and
  9401. * continues to repeat, until the return value is not a fn, then
  9402. * returns that non-fn value. Note that if you want to return a fn as a
  9403. * final value, you must wrap it in some data structure and unpack it
  9404. * after trampoline returns.
  9405. * @param {...*} var_args
  9406. */
  9407. cljs.core.trampoline = (function() {
  9408. var trampoline = null;
  9409. var trampoline__3308 = (function (f){
  9410. var G__3311,G__3312;G__3311=G__3312=new Object();
  9411. while(G__3311===G__3312){
  9412. G__3311=(function(continue_val){
  9413. var ret__3307 = f.call(null);
  9414.  
  9415. if(cljs.core.truth_(cljs.core.fn_QMARK_.call(null,ret__3307)))
  9416. {{
  9417. var G__3313 = ret__3307;
  9418. f = G__3313;
  9419. return continue_val;
  9420. }
  9421. } else
  9422. {return ret__3307;
  9423. }
  9424. })(G__3312);}
  9425. return G__3311;
  9426. });
  9427. var trampoline__3309 = (function() {
  9428. var G__3314__delegate = function (f,args){
  9429. return trampoline.call(null,(function (){
  9430. return cljs.core.apply.call(null,f,args);
  9431. }));
  9432. };
  9433. var G__3314 = function (f,var_args){
  9434. var args = null;
  9435. if (goog.isDef(var_args)) {
  9436.   args = cljs.core.array_seq(Array.prototype.slice.call(arguments, 1),0);
  9437. }
  9438. return G__3314__delegate.call(this, f, args);
  9439. };
  9440. G__3314.cljs$lang$maxFixedArity = 1;
  9441. G__3314.cljs$lang$applyTo = (function (arglist__3315){
  9442. var f = cljs.core.first(arglist__3315);
  9443. var args = cljs.core.rest(arglist__3315);
  9444. return G__3314__delegate.call(this, f, args);
  9445. });
  9446. return G__3314;
  9447. })()
  9448. ;
  9449. trampoline = function(f,var_args){
  9450. var args = var_args;
  9451. switch(arguments.length){
  9452. case  1 :
  9453. return trampoline__3308.call(this,f);
  9454. default:
  9455. return trampoline__3309.apply(this,arguments);
  9456. }
  9457. throw('Invalid arity: ' + arguments.length);
  9458. };
  9459. trampoline.cljs$lang$maxFixedArity = 1;
  9460. trampoline.cljs$lang$applyTo = trampoline__3309.cljs$lang$applyTo;
  9461. return trampoline;
  9462. })()
  9463. ;
  9464. /**
  9465. * Returns a random floating point number between 0 (inclusive) and
  9466. * n (default 1) (exclusive).
  9467. */
  9468. cljs.core.rand = (function() {
  9469. var rand = null;
  9470. var rand__3316 = (function (){
  9471. return rand.call(null,1);
  9472. });
  9473. var rand__3317 = (function (n){
  9474. return Math.random() * n;
  9475. });
  9476. rand = function(n){
  9477. switch(arguments.length){
  9478. case  0 :
  9479. return rand__3316.call(this);
  9480. case  1 :
  9481. return rand__3317.call(this,n);
  9482. }
  9483. throw('Invalid arity: ' + arguments.length);
  9484. };
  9485. return rand;
  9486. })()
  9487. ;
  9488. /**
  9489. * Returns a random integer between 0 (inclusive) and n (exclusive).
  9490. */
  9491. cljs.core.rand_int = (function rand_int(n){
  9492. return Math.floor(Math.random() * n);
  9493. });
  9494. /**
  9495. * Return a random element of the (sequential) collection. Will have
  9496. * the same performance characteristics as nth for the given
  9497. * collection.
  9498. */
  9499. cljs.core.rand_nth = (function rand_nth(coll){
  9500. return cljs.core.nth.call(null,coll,cljs.core.rand_int.call(null,cljs.core.count.call(null,coll)));
  9501. });
  9502. /**
  9503. * Returns a map of the elements of coll keyed by the result of
  9504. * f on each element. The value at each key will be a vector of the
  9505. * corresponding elements, in the order they appeared in coll.
  9506. */
  9507. cljs.core.group_by = (function group_by(f,coll){
  9508. return cljs.core.reduce.call(null,(function (ret,x){
  9509. var k__3319 = f.call(null,x);
  9510.  
  9511. return cljs.core.assoc.call(null,ret,k__3319,cljs.core.conj.call(null,cljs.core.get.call(null,ret,k__3319,cljs.core.Vector.fromArray([])),x));
  9512. }),cljs.core.ObjMap.fromObject([],{}),coll);
  9513. });
  9514. /**
  9515. * Creates a hierarchy object for use with derive, isa? etc.
  9516. */
  9517. cljs.core.make_hierarchy = (function make_hierarchy(){
  9518. return cljs.core.ObjMap.fromObject(["﷐'parents","﷐'descendants","﷐'ancestors"],{"﷐'parents":cljs.core.ObjMap.fromObject([],{}),"﷐'descendants":cljs.core.ObjMap.fromObject([],{}),"﷐'ancestors":cljs.core.ObjMap.fromObject([],{})});
  9519. });
  9520. cljs.core.global_hierarchy = cljs.core.atom.call(null,cljs.core.make_hierarchy.call(null));
  9521. /**
  9522. * Returns true if (= child parent), or child is directly or indirectly derived from
  9523. * parent, either via a Java type inheritance relationship or a
  9524. * relationship established via derive. h must be a hierarchy obtained
  9525. * from make-hierarchy, if not supplied defaults to the global
  9526. * hierarchy
  9527. */
  9528. cljs.core.isa_QMARK_ = (function() {
  9529. var isa_QMARK_ = null;
  9530. var isa_QMARK___3328 = (function (child,parent){
  9531. return isa_QMARK_.call(null,cljs.core.deref.call(null,cljs.core.global_hierarchy),child,parent);
  9532. });
  9533. var isa_QMARK___3329 = (function (h,child,parent){
  9534. var or__3576__auto____3320 = cljs.core._EQ_.call(null,child,parent);
  9535.  
  9536. if(cljs.core.truth_(or__3576__auto____3320))
  9537. {return or__3576__auto____3320;
  9538. } else
  9539. {var or__3576__auto____3321 = cljs.core.contains_QMARK_.call(null,"﷐'ancestors".call(null,h).call(null,child),parent);
  9540.  
  9541. if(cljs.core.truth_(or__3576__auto____3321))
  9542. {return or__3576__auto____3321;
  9543. } else
  9544. {var and__3574__auto____3322 = cljs.core.vector_QMARK_.call(null,parent);
  9545.  
  9546. if(cljs.core.truth_(and__3574__auto____3322))
  9547. {var and__3574__auto____3323 = cljs.core.vector_QMARK_.call(null,child);
  9548.  
  9549. if(cljs.core.truth_(and__3574__auto____3323))
  9550. {var and__3574__auto____3324 = cljs.core._EQ_.call(null,cljs.core.count.call(null,parent),cljs.core.count.call(null,child));
  9551.  
  9552. if(cljs.core.truth_(and__3574__auto____3324))
  9553. {var ret__3325 = true;
  9554. var i__3326 = 0;
  9555.  
  9556. var G__3331,G__3332;G__3331=G__3332=new Object();
  9557. while(G__3331===G__3332){
  9558. G__3331=(function(continue_val){
  9559. if(cljs.core.truth_((function (){var or__3576__auto____3327 = cljs.core.not.call(null,ret__3325);
  9560.  
  9561. if(cljs.core.truth_(or__3576__auto____3327))
  9562. {return or__3576__auto____3327;
  9563. } else
  9564. {return cljs.core._EQ_.call(null,i__3326,cljs.core.count.call(null,parent));
  9565. }
  9566. })()))
  9567. {return ret__3325;
  9568. } else
  9569. {{
  9570. var G__3333 = isa_QMARK_.call(null,h,child.call(null,i__3326),parent.call(null,i__3326));
  9571. var G__3334 = cljs.core.inc.call(null,i__3326);
  9572. ret__3325 = G__3333;
  9573. i__3326 = G__3334;
  9574. return continue_val;
  9575. }
  9576. }
  9577. })(G__3332);}
  9578. return G__3331;
  9579. } else
  9580. {return and__3574__auto____3324;
  9581. }
  9582. } else
  9583. {return and__3574__auto____3323;
  9584. }
  9585. } else
  9586. {return and__3574__auto____3322;
  9587. }
  9588. }
  9589. }
  9590. });
  9591. isa_QMARK_ = function(h,child,parent){
  9592. switch(arguments.length){
  9593. case  2 :
  9594. return isa_QMARK___3328.call(this,h,child);
  9595. case  3 :
  9596. return isa_QMARK___3329.call(this,h,child,parent);
  9597. }
  9598. throw('Invalid arity: ' + arguments.length);
  9599. };
  9600. return isa_QMARK_;
  9601. })()
  9602. ;
  9603. /**
  9604. * Returns the immediate parents of tag, either via a Java type
  9605. * inheritance relationship or a relationship established via derive. h
  9606. * must be a hierarchy obtained from make-hierarchy, if not supplied
  9607. * defaults to the global hierarchy
  9608. */
  9609. cljs.core.parents = (function() {
  9610. var parents = null;
  9611. var parents__3335 = (function (tag){
  9612. return parents.call(null,cljs.core.deref.call(null,cljs.core.global_hierarchy),tag);
  9613. });
  9614. var parents__3336 = (function (h,tag){
  9615. return cljs.core.not_empty.call(null,cljs.core.get.call(null,"﷐'parents".call(null,h),tag));
  9616. });
  9617. parents = function(h,tag){
  9618. switch(arguments.length){
  9619. case  1 :
  9620. return parents__3335.call(this,h);
  9621. case  2 :
  9622. return parents__3336.call(this,h,tag);
  9623. }
  9624. throw('Invalid arity: ' + arguments.length);
  9625. };
  9626. return parents;
  9627. })()
  9628. ;
  9629. /**
  9630. * Returns the immediate and indirect parents of tag, either via a Java type
  9631. * inheritance relationship or a relationship established via derive. h
  9632. * must be a hierarchy obtained from make-hierarchy, if not supplied
  9633. * defaults to the global hierarchy
  9634. */
  9635. cljs.core.ancestors = (function() {
  9636. var ancestors = null;
  9637. var ancestors__3338 = (function (tag){
  9638. return ancestors.call(null,cljs.core.deref.call(null,cljs.core.global_hierarchy),tag);
  9639. });
  9640. var ancestors__3339 = (function (h,tag){
  9641. return cljs.core.not_empty.call(null,cljs.core.get.call(null,"﷐'ancestors".call(null,h),tag));
  9642. });
  9643. ancestors = function(h,tag){
  9644. switch(arguments.length){
  9645. case  1 :
  9646. return ancestors__3338.call(this,h);
  9647. case  2 :
  9648. return ancestors__3339.call(this,h,tag);
  9649. }
  9650. throw('Invalid arity: ' + arguments.length);
  9651. };
  9652. return ancestors;
  9653. })()
  9654. ;
  9655. /**
  9656. * Returns the immediate and indirect children of tag, through a
  9657. * relationship established via derive. h must be a hierarchy obtained
  9658. * from make-hierarchy, if not supplied defaults to the global
  9659. * hierarchy. Note: does not work on Java type inheritance
  9660. * relationships.
  9661. */
  9662. cljs.core.descendants = (function() {
  9663. var descendants = null;
  9664. var descendants__3341 = (function (tag){
  9665. return descendants.call(null,cljs.core.deref.call(null,cljs.core.global_hierarchy),tag);
  9666. });
  9667. var descendants__3342 = (function (h,tag){
  9668. return cljs.core.not_empty.call(null,cljs.core.get.call(null,"﷐'descendants".call(null,h),tag));
  9669. });
  9670. descendants = function(h,tag){
  9671. switch(arguments.length){
  9672. case  1 :
  9673. return descendants__3341.call(this,h);
  9674. case  2 :
  9675. return descendants__3342.call(this,h,tag);
  9676. }
  9677. throw('Invalid arity: ' + arguments.length);
  9678. };
  9679. return descendants;
  9680. })()
  9681. ;
  9682. /**
  9683. * Establishes a parent/child relationship between parent and
  9684. * tag. Parent must be a namespace-qualified symbol or keyword and
  9685. * child can be either a namespace-qualified symbol or keyword or a
  9686. * class. h must be a hierarchy obtained from make-hierarchy, if not
  9687. * supplied defaults to, and modifies, the global hierarchy.
  9688. */
  9689. cljs.core.derive = (function() {
  9690. var derive = null;
  9691. var derive__3352 = (function (tag,parent){
  9692. if(cljs.core.truth_(cljs.core.namespace.call(null,parent)))
  9693. {} else
  9694. {throw cljs.core.str.call(null,"Assert failed: ",cljs.core.pr_str.call(null,cljs.core.list("ï·‘'namespace","ï·‘'parent")));
  9695. }
  9696. cljs.core.swap_BANG_.call(null,cljs.core.global_hierarchy,derive,tag,parent);
  9697. return null;
  9698. });
  9699. var derive__3353 = (function (h,tag,parent){
  9700. if(cljs.core.truth_(cljs.core.not_EQ_.call(null,tag,parent)))
  9701. {} else
  9702. {throw cljs.core.str.call(null,"Assert failed: ",cljs.core.pr_str.call(null,cljs.core.list("ï·‘'not=","ï·‘'tag","ï·‘'parent")));
  9703. }
  9704. var tp__3347 = "﷐'parents".call(null,h);
  9705. var td__3348 = "﷐'descendants".call(null,h);
  9706. var ta__3349 = "﷐'ancestors".call(null,h);
  9707. var tf__3350 = (function (m,source,sources,target,targets){
  9708. return cljs.core.reduce.call(null,(function (ret,k){
  9709. return cljs.core.assoc.call(null,ret,k,cljs.core.reduce.call(null,cljs.core.conj,cljs.core.get.call(null,targets,k,cljs.core.set([])),cljs.core.cons.call(null,target,targets.call(null,target))));
  9710. }),m,cljs.core.cons.call(null,source,sources.call(null,source)));
  9711. });
  9712.  
  9713. var or__3576__auto____3351 = (cljs.core.truth_(cljs.core.contains_QMARK_.call(null,tp__3347.call(null,tag),parent))?null:(function (){if(cljs.core.truth_(cljs.core.contains_QMARK_.call(null,ta__3349.call(null,tag),parent)))
  9714. {throw cljs.core.str.call(null,tag,"already has",parent,"as ancestor");
  9715. } else
  9716. {}
  9717. if(cljs.core.truth_(cljs.core.contains_QMARK_.call(null,ta__3349.call(null,parent),tag)))
  9718. {throw cljs.core.str.call(null,"Cyclic derivation:",parent,"has",tag,"as ancestor");
  9719. } else
  9720. {}
  9721. return cljs.core.ObjMap.fromObject(["﷐'parents","﷐'ancestors","﷐'descendants"],{"﷐'parents":cljs.core.assoc.call(null,"﷐'parents".call(null,h),tag,cljs.core.conj.call(null,cljs.core.get.call(null,tp__3347,tag,cljs.core.set([])),parent)),"﷐'ancestors":tf__3350.call(null,"﷐'ancestors".call(null,h),tag,td__3348,parent,ta__3349),"﷐'descendants":tf__3350.call(null,"﷐'descendants".call(null,h),parent,ta__3349,tag,td__3348)});
  9722. })());
  9723.  
  9724. if(cljs.core.truth_(or__3576__auto____3351))
  9725. {return or__3576__auto____3351;
  9726. } else
  9727. {return h;
  9728. }
  9729. });
  9730. derive = function(h,tag,parent){
  9731. switch(arguments.length){
  9732. case  2 :
  9733. return derive__3352.call(this,h,tag);
  9734. case  3 :
  9735. return derive__3353.call(this,h,tag,parent);
  9736. }
  9737. throw('Invalid arity: ' + arguments.length);
  9738. };
  9739. return derive;
  9740. })()
  9741. ;
  9742. /**
  9743. * Removes a parent/child relationship between parent and
  9744. * tag. h must be a hierarchy obtained from make-hierarchy, if not
  9745. * supplied defaults to, and modifies, the global hierarchy.
  9746. */
  9747. cljs.core.underive = (function() {
  9748. var underive = null;
  9749. var underive__3359 = (function (tag,parent){
  9750. cljs.core.swap_BANG_.call(null,cljs.core.global_hierarchy,underive,tag,parent);
  9751. return null;
  9752. });
  9753. var underive__3360 = (function (h,tag,parent){
  9754. var parentMap__3355 = "﷐'parents".call(null,h);
  9755. var childsParents__3356 = (cljs.core.truth_(parentMap__3355.call(null,tag))?cljs.core.disj.call(null,parentMap__3355.call(null,tag),parent):cljs.core.set([]));
  9756. var newParents__3357 = (cljs.core.truth_(cljs.core.not_empty.call(null,childsParents__3356))?cljs.core.assoc.call(null,parentMap__3355,tag,childsParents__3356):cljs.core.dissoc.call(null,parentMap__3355,tag));
  9757. var deriv_seq__3358 = cljs.core.flatten.call(null,cljs.core.map.call(null,(function (p1__3344_SHARP_){
  9758. return cljs.core.cons.call(null,cljs.core.first.call(null,p1__3344_SHARP_),cljs.core.interpose.call(null,cljs.core.first.call(null,p1__3344_SHARP_),cljs.core.second.call(null,p1__3344_SHARP_)));
  9759. }),cljs.core.seq.call(null,newParents__3357)));
  9760.  
  9761. if(cljs.core.truth_(cljs.core.contains_QMARK_.call(null,parentMap__3355.call(null,tag),parent)))
  9762. {return cljs.core.reduce.call(null,(function (p1__3345_SHARP_,p2__3346_SHARP_){
  9763. return cljs.core.apply.call(null,cljs.core.derive,p1__3345_SHARP_,p2__3346_SHARP_);
  9764. }),cljs.core.make_hierarchy.call(null),cljs.core.partition.call(null,2,deriv_seq__3358));
  9765. } else
  9766. {return h;
  9767. }
  9768. });
  9769. underive = function(h,tag,parent){
  9770. switch(arguments.length){
  9771. case  2 :
  9772. return underive__3359.call(this,h,tag);
  9773. case  3 :
  9774. return underive__3360.call(this,h,tag,parent);
  9775. }
  9776. throw('Invalid arity: ' + arguments.length);
  9777. };
  9778. return underive;
  9779. })()
  9780. ;
  9781. cljs.core.reset_cache = (function reset_cache(method_cache,method_table,cached_hierarchy,hierarchy){
  9782. cljs.core.swap_BANG_.call(null,method_cache,(function (_){
  9783. return cljs.core.deref.call(null,method_table);
  9784. }));
  9785. return cljs.core.swap_BANG_.call(null,cached_hierarchy,(function (_){
  9786. return cljs.core.deref.call(null,hierarchy);
  9787. }));
  9788. });
  9789. cljs.core.prefers_STAR_ = (function prefers_STAR_(x,y,prefer_table){
  9790. var xprefs__3362 = cljs.core.deref.call(null,prefer_table).call(null,x);
  9791.  
  9792. var or__3576__auto____3364 = (cljs.core.truth_((function (){var and__3574__auto____3363 = xprefs__3362;
  9793.  
  9794. if(cljs.core.truth_(and__3574__auto____3363))
  9795. {return xprefs__3362.call(null,y);
  9796. } else
  9797. {return and__3574__auto____3363;
  9798. }
  9799. })())?true:null);
  9800.  
  9801. if(cljs.core.truth_(or__3576__auto____3364))
  9802. {return or__3576__auto____3364;
  9803. } else
  9804. {var or__3576__auto____3366 = (function (){var ps__3365 = cljs.core.parents.call(null,y);
  9805.  
  9806. var G__3369,G__3370;G__3369=G__3370=new Object();
  9807. while(G__3369===G__3370){
  9808. G__3369=(function(continue_val){
  9809. if(cljs.core.truth_(cljs.core.pos_QMARK_.call(null,cljs.core.count.call(null,ps__3365))))
  9810. {if(cljs.core.truth_(prefers_STAR_.call(null,x,cljs.core.first.call(null,ps__3365),prefer_table)))
  9811. {} else
  9812. {}
  9813. {
  9814. var G__3371 = cljs.core.rest.call(null,ps__3365);
  9815. ps__3365 = G__3371;
  9816. return continue_val;
  9817. }
  9818. } else
  9819. {return null;
  9820. }
  9821. })(G__3370);}
  9822. return G__3369;
  9823. })();
  9824.  
  9825. if(cljs.core.truth_(or__3576__auto____3366))
  9826. {return or__3576__auto____3366;
  9827. } else
  9828. {var or__3576__auto____3368 = (function (){var ps__3367 = cljs.core.parents.call(null,x);
  9829.  
  9830. var G__3372,G__3373;G__3372=G__3373=new Object();
  9831. while(G__3372===G__3373){
  9832. G__3372=(function(continue_val){
  9833. if(cljs.core.truth_(cljs.core.pos_QMARK_.call(null,cljs.core.count.call(null,ps__3367))))
  9834. {if(cljs.core.truth_(prefers_STAR_.call(null,cljs.core.first.call(null,ps__3367),y,prefer_table)))
  9835. {} else
  9836. {}
  9837. {
  9838. var G__3374 = cljs.core.rest.call(null,ps__3367);
  9839. ps__3367 = G__3374;
  9840. return continue_val;
  9841. }
  9842. } else
  9843. {return null;
  9844. }
  9845. })(G__3373);}
  9846. return G__3372;
  9847. })();
  9848.  
  9849. if(cljs.core.truth_(or__3576__auto____3368))
  9850. {return or__3576__auto____3368;
  9851. } else
  9852. {return false;
  9853. }
  9854. }
  9855. }
  9856. });
  9857. cljs.core.dominates = (function dominates(x,y,prefer_table){
  9858. var or__3576__auto____3375 = cljs.core.prefers_STAR_.call(null,x,y,prefer_table);
  9859.  
  9860. if(cljs.core.truth_(or__3576__auto____3375))
  9861. {return or__3576__auto____3375;
  9862. } else
  9863. {return cljs.core.isa_QMARK_.call(null,x,y);
  9864. }
  9865. });
  9866. cljs.core.find_and_cache_best_method = (function find_and_cache_best_method(name,dispatch_val,hierarchy,method_table,prefer_table,method_cache,cached_hierarchy){
  9867. var best_entry__3384 = cljs.core.reduce.call(null,(function (be,p__3376){
  9868. var vec__3377__3378 = p__3376;
  9869. var k__3379 = cljs.core.nth.call(null,vec__3377__3378,0,null);
  9870. var ___3380 = cljs.core.nth.call(null,vec__3377__3378,1,null);
  9871. var e__3381 = vec__3377__3378;
  9872.  
  9873. if(cljs.core.truth_(cljs.core.isa_QMARK_.call(null,dispatch_val,k__3379)))
  9874. {var be2__3383 = (cljs.core.truth_((function (){var or__3576__auto____3382 = cljs.core.nil_QMARK_.call(null,be);
  9875.  
  9876. if(cljs.core.truth_(or__3576__auto____3382))
  9877. {return or__3576__auto____3382;
  9878. } else
  9879. {return cljs.core.dominates.call(null,k__3379,cljs.core.first.call(null,be),prefer_table);
  9880. }
  9881. })())?e__3381:be);
  9882.  
  9883. if(cljs.core.truth_(cljs.core.dominates.call(null,cljs.core.first.call(null,be2__3383),k__3379,prefer_table)))
  9884. {} else
  9885. {throw cljs.core.str.call(null,"Multiple methods in multimethod '",name,"' match dispatch value: ",dispatch_val," -> ",k__3379," and ",cljs.core.first.call(null,be2__3383),", and neither is preferred");
  9886. }
  9887. return be2__3383;
  9888. } else
  9889. {return null;
  9890. }
  9891. }),null,cljs.core.deref.call(null,method_table));
  9892.  
  9893. if(cljs.core.truth_(best_entry__3384))
  9894. {if(cljs.core.truth_(cljs.core._EQ_.call(null,cljs.core.deref.call(null,cached_hierarchy),cljs.core.deref.call(null,hierarchy))))
  9895. {cljs.core.swap_BANG_.call(null,method_cache,cljs.core.assoc,dispatch_val,cljs.core.second.call(null,best_entry__3384));
  9896. return cljs.core.second.call(null,best_entry__3384);
  9897. } else
  9898. {cljs.core.reset_cache.call(null,method_cache,method_table,cached_hierarchy,hierarchy);
  9899. return find_and_cache_best_method.call(null,name,dispatch_val,hierarchy,method_table,prefer_table,method_cache,cached_hierarchy);
  9900. }
  9901. } else
  9902. {return null;
  9903. }
  9904. });
  9905. cljs.core.IMultiFn = {};
  9906. cljs.core._reset = (function _reset(mf){
  9907. if(cljs.core.truth_((function (){var and__3574__auto____3385 = mf;
  9908.  
  9909. if(cljs.core.truth_(and__3574__auto____3385))
  9910. {return mf.cljs$core$IMultiFn$_reset;
  9911. } else
  9912. {return and__3574__auto____3385;
  9913. }
  9914. })()))
  9915. {return mf.cljs$core$IMultiFn$_reset(mf);
  9916. } else
  9917. {return (function (){var or__3576__auto____3386 = (_reset[goog.typeOf.call(null,mf)]);
  9918.  
  9919. if(cljs.core.truth_(or__3576__auto____3386))
  9920. {return or__3576__auto____3386;
  9921. } else
  9922. {return (_reset["_"]);
  9923. }
  9924. })().call(null,mf);
  9925. }
  9926. });
  9927. cljs.core._add_method = (function _add_method(mf,dispatch_val,method){
  9928. if(cljs.core.truth_((function (){var and__3574__auto____3387 = mf;
  9929.  
  9930. if(cljs.core.truth_(and__3574__auto____3387))
  9931. {return mf.cljs$core$IMultiFn$_add_method;
  9932. } else
  9933. {return and__3574__auto____3387;
  9934. }
  9935. })()))
  9936. {return mf.cljs$core$IMultiFn$_add_method(mf,dispatch_val,method);
  9937. } else
  9938. {return (function (){var or__3576__auto____3388 = (_add_method[goog.typeOf.call(null,mf)]);
  9939.  
  9940. if(cljs.core.truth_(or__3576__auto____3388))
  9941. {return or__3576__auto____3388;
  9942. } else
  9943. {return (_add_method["_"]);
  9944. }
  9945. })().call(null,mf,dispatch_val,method);
  9946. }
  9947. });
  9948. cljs.core._remove_method = (function _remove_method(mf,dispatch_val){
  9949. if(cljs.core.truth_((function (){var and__3574__auto____3389 = mf;
  9950.  
  9951. if(cljs.core.truth_(and__3574__auto____3389))
  9952. {return mf.cljs$core$IMultiFn$_remove_method;
  9953. } else
  9954. {return and__3574__auto____3389;
  9955. }
  9956. })()))
  9957. {return mf.cljs$core$IMultiFn$_remove_method(mf,dispatch_val);
  9958. } else
  9959. {return (function (){var or__3576__auto____3390 = (_remove_method[goog.typeOf.call(null,mf)]);
  9960.  
  9961. if(cljs.core.truth_(or__3576__auto____3390))
  9962. {return or__3576__auto____3390;
  9963. } else
  9964. {return (_remove_method["_"]);
  9965. }
  9966. })().call(null,mf,dispatch_val);
  9967. }
  9968. });
  9969. cljs.core._prefer_method = (function _prefer_method(mf,dispatch_val,dispatch_val_y){
  9970. if(cljs.core.truth_((function (){var and__3574__auto____3391 = mf;
  9971.  
  9972. if(cljs.core.truth_(and__3574__auto____3391))
  9973. {return mf.cljs$core$IMultiFn$_prefer_method;
  9974. } else
  9975. {return and__3574__auto____3391;
  9976. }
  9977. })()))
  9978. {return mf.cljs$core$IMultiFn$_prefer_method(mf,dispatch_val,dispatch_val_y);
  9979. } else
  9980. {return (function (){var or__3576__auto____3392 = (_prefer_method[goog.typeOf.call(null,mf)]);
  9981.  
  9982. if(cljs.core.truth_(or__3576__auto____3392))
  9983. {return or__3576__auto____3392;
  9984. } else
  9985. {return (_prefer_method["_"]);
  9986. }
  9987. })().call(null,mf,dispatch_val,dispatch_val_y);
  9988. }
  9989. });
  9990. cljs.core._get_method = (function _get_method(mf,dispatch_val){
  9991. if(cljs.core.truth_((function (){var and__3574__auto____3393 = mf;
  9992.  
  9993. if(cljs.core.truth_(and__3574__auto____3393))
  9994. {return mf.cljs$core$IMultiFn$_get_method;
  9995. } else
  9996. {return and__3574__auto____3393;
  9997. }
  9998. })()))
  9999. {return mf.cljs$core$IMultiFn$_get_method(mf,dispatch_val);
  10000. } else
  10001. {return (function (){var or__3576__auto____3394 = (_get_method[goog.typeOf.call(null,mf)]);
  10002.  
  10003. if(cljs.core.truth_(or__3576__auto____3394))
  10004. {return or__3576__auto____3394;
  10005. } else
  10006. {return (_get_method["_"]);
  10007. }
  10008. })().call(null,mf,dispatch_val);
  10009. }
  10010. });
  10011. cljs.core._methods = (function _methods(mf){
  10012. if(cljs.core.truth_((function (){var and__3574__auto____3395 = mf;
  10013.  
  10014. if(cljs.core.truth_(and__3574__auto____3395))
  10015. {return mf.cljs$core$IMultiFn$_methods;
  10016. } else
  10017. {return and__3574__auto____3395;
  10018. }
  10019. })()))
  10020. {return mf.cljs$core$IMultiFn$_methods(mf);
  10021. } else
  10022. {return (function (){var or__3576__auto____3396 = (_methods[goog.typeOf.call(null,mf)]);
  10023.  
  10024. if(cljs.core.truth_(or__3576__auto____3396))
  10025. {return or__3576__auto____3396;
  10026. } else
  10027. {return (_methods["_"]);
  10028. }
  10029. })().call(null,mf);
  10030. }
  10031. });
  10032. cljs.core._prefers = (function _prefers(mf){
  10033. if(cljs.core.truth_((function (){var and__3574__auto____3397 = mf;
  10034.  
  10035. if(cljs.core.truth_(and__3574__auto____3397))
  10036. {return mf.cljs$core$IMultiFn$_prefers;
  10037. } else
  10038. {return and__3574__auto____3397;
  10039. }
  10040. })()))
  10041. {return mf.cljs$core$IMultiFn$_prefers(mf);
  10042. } else
  10043. {return (function (){var or__3576__auto____3398 = (_prefers[goog.typeOf.call(null,mf)]);
  10044.  
  10045. if(cljs.core.truth_(or__3576__auto____3398))
  10046. {return or__3576__auto____3398;
  10047. } else
  10048. {return (_prefers["_"]);
  10049. }
  10050. })().call(null,mf);
  10051. }
  10052. });
  10053. cljs.core._invoke = (function _invoke(mf,args){
  10054. if(cljs.core.truth_((function (){var and__3574__auto____3399 = mf;
  10055.  
  10056. if(cljs.core.truth_(and__3574__auto____3399))
  10057. {return mf.cljs$core$IMultiFn$_invoke;
  10058. } else
  10059. {return and__3574__auto____3399;
  10060. }
  10061. })()))
  10062. {return mf.cljs$core$IMultiFn$_invoke(mf,args);
  10063. } else
  10064. {return (function (){var or__3576__auto____3400 = (_invoke[goog.typeOf.call(null,mf)]);
  10065.  
  10066. if(cljs.core.truth_(or__3576__auto____3400))
  10067. {return or__3576__auto____3400;
  10068. } else
  10069. {return (_invoke["_"]);
  10070. }
  10071. })().call(null,mf,args);
  10072. }
  10073. });
  10074. cljs.core.do_invoke = (function do_invoke(mf,dispatch_fn,args){
  10075. var dispatch_val__3401 = cljs.core.apply.call(null,dispatch_fn,args);
  10076. var target_fn__3402 = cljs.core._get_method.call(null,mf,dispatch_val__3401);
  10077.  
  10078. if(cljs.core.truth_(target_fn__3402))
  10079. {} else
  10080. {throw cljs.core.str.call(null,"No method in multimethod '",cljs.core.name,"' for dispatch value: ",dispatch_val__3401);
  10081. }
  10082. return cljs.core.apply.call(null,target_fn__3402,args);
  10083. });
  10084.  
  10085. /**
  10086. * @constructor
  10087. */
  10088. cljs.core.MultiFn = (function (name,dispatch_fn,default_dispatch_val,hierarchy,method_table,prefer_table,method_cache,cached_hierarchy){
  10089. this.name = name;
  10090. this.dispatch_fn = dispatch_fn;
  10091. this.default_dispatch_val = default_dispatch_val;
  10092. this.hierarchy = hierarchy;
  10093. this.method_table = method_table;
  10094. this.prefer_table = prefer_table;
  10095. this.method_cache = method_cache;
  10096. this.cached_hierarchy = cached_hierarchy;
  10097. })
  10098. cljs.core.MultiFn.prototype.cljs$core$IMultiFn$ = true;
  10099. cljs.core.MultiFn.prototype.cljs$core$IMultiFn$_reset = (function (mf){
  10100. var this__3403 = this;
  10101. cljs.core.swap_BANG_.call(null,this__3403.method_table,(function (mf){
  10102. return cljs.core.ObjMap.fromObject([],{});
  10103. }));
  10104. cljs.core.swap_BANG_.call(null,this__3403.method_cache,(function (mf){
  10105. return cljs.core.ObjMap.fromObject([],{});
  10106. }));
  10107. cljs.core.swap_BANG_.call(null,this__3403.prefer_table,(function (mf){
  10108. return cljs.core.ObjMap.fromObject([],{});
  10109. }));
  10110. cljs.core.swap_BANG_.call(null,this__3403.cached_hierarchy,(function (mf){
  10111. return null;
  10112. }));
  10113. return mf;
  10114. });
  10115. cljs.core.MultiFn.prototype.cljs$core$IMultiFn$_add_method = (function (mf,dispatch_val,method){
  10116. var this__3404 = this;
  10117. cljs.core.swap_BANG_.call(null,this__3404.method_table,cljs.core.assoc,dispatch_val,method);
  10118. cljs.core.reset_cache.call(null,this__3404.method_cache,this__3404.method_table,this__3404.cached_hierarchy,this__3404.hierarchy);
  10119. return mf;
  10120. });
  10121. cljs.core.MultiFn.prototype.cljs$core$IMultiFn$_remove_method = (function (mf,dispatch_val){
  10122. var this__3405 = this;
  10123. cljs.core.swap_BANG_.call(null,this__3405.method_table,cljs.core.dissoc,dispatch_val);
  10124. cljs.core.reset_cache.call(null,this__3405.method_cache,this__3405.method_table,this__3405.cached_hierarchy,this__3405.hierarchy);
  10125. return mf;
  10126. });
  10127. cljs.core.MultiFn.prototype.cljs$core$IMultiFn$_get_method = (function (mf,dispatch_val){
  10128. var this__3406 = this;
  10129. if(cljs.core.truth_(cljs.core._EQ_.call(null,cljs.core.deref.call(null,this__3406.cached_hierarchy),cljs.core.deref.call(null,this__3406.hierarchy))))
  10130. {} else
  10131. {cljs.core.reset_cache.call(null,this__3406.method_cache,this__3406.method_table,this__3406.cached_hierarchy,this__3406.hierarchy);
  10132. }
  10133. var temp__3723__auto____3407 = cljs.core.deref.call(null,this__3406.method_cache).call(null,dispatch_val);
  10134.  
  10135. if(cljs.core.truth_(temp__3723__auto____3407))
  10136. {var target_fn__3408 = temp__3723__auto____3407;
  10137.  
  10138. return target_fn__3408;
  10139. } else
  10140. {var temp__3723__auto____3409 = cljs.core.find_and_cache_best_method.call(null,this__3406.name,dispatch_val,this__3406.hierarchy,this__3406.method_table,this__3406.prefer_table,this__3406.method_cache,this__3406.cached_hierarchy);
  10141.  
  10142. if(cljs.core.truth_(temp__3723__auto____3409))
  10143. {var target_fn__3410 = temp__3723__auto____3409;
  10144.  
  10145. return target_fn__3410;
  10146. } else
  10147. {return cljs.core.deref.call(null,this__3406.method_table).call(null,this__3406.default_dispatch_val);
  10148. }
  10149. }
  10150. });
  10151. cljs.core.MultiFn.prototype.cljs$core$IMultiFn$_prefer_method = (function (mf,dispatch_val_x,dispatch_val_y){
  10152. var this__3411 = this;
  10153. if(cljs.core.truth_(cljs.core.prefers_STAR_.call(null,dispatch_val_x,dispatch_val_y,this__3411.prefer_table)))
  10154. {throw cljs.core.str.call(null,"Preference conflict in multimethod '",this__3411.name,"': ",dispatch_val_y," is already preferred to ",dispatch_val_x);
  10155. } else
  10156. {}
  10157. cljs.core.swap_BANG_.call(null,this__3411.prefer_table,(function (old){
  10158. return cljs.core.assoc.call(null,old,dispatch_val_x,cljs.core.conj.call(null,cljs.core.get.call(null,old,dispatch_val_x,cljs.core.set([])),dispatch_val_y));
  10159. }));
  10160. return cljs.core.reset_cache.call(null,this__3411.method_cache,this__3411.method_table,this__3411.cached_hierarchy,this__3411.hierarchy);
  10161. });
  10162. cljs.core.MultiFn.prototype.cljs$core$IMultiFn$_methods = (function (mf){
  10163. var this__3412 = this;
  10164. return cljs.core.deref.call(null,this__3412.method_table);
  10165. });
  10166. cljs.core.MultiFn.prototype.cljs$core$IMultiFn$_prefers = (function (mf){
  10167. var this__3413 = this;
  10168. return cljs.core.deref.call(null,this__3413.prefer_table);
  10169. });
  10170. cljs.core.MultiFn.prototype.cljs$core$IMultiFn$_invoke = (function (mf,args){
  10171. var this__3414 = this;
  10172. return cljs.core.do_invoke.call(null,mf,this__3414.dispatch_fn,args);
  10173. });
  10174. cljs.core.MultiFn.prototype.call = (function() {
  10175. var G__3415__delegate = function (_,args){
  10176. return cljs.core._invoke.call(null,this,args);
  10177. };
  10178. var G__3415 = function (_,var_args){
  10179. var args = null;
  10180. if (goog.isDef(var_args)) {
  10181.   args = cljs.core.array_seq(Array.prototype.slice.call(arguments, 1),0);
  10182. }
  10183. return G__3415__delegate.call(this, _, args);
  10184. };
  10185. G__3415.cljs$lang$maxFixedArity = 1;
  10186. G__3415.cljs$lang$applyTo = (function (arglist__3416){
  10187. var _ = cljs.core.first(arglist__3416);
  10188. var args = cljs.core.rest(arglist__3416);
  10189. return G__3415__delegate.call(this, _, args);
  10190. });
  10191. return G__3415;
  10192. })()
  10193. ;
  10194. /**
  10195. * Removes all of the methods of multimethod.
  10196. */
  10197. cljs.core.remove_all_methods = (function remove_all_methods(multifn){
  10198. return cljs.core._reset.call(null,multifn);
  10199. });
  10200. /**
  10201. * Removes the method of multimethod associated with dispatch-value.
  10202. */
  10203. cljs.core.remove_method = (function remove_method(multifn,dispatch_val){
  10204. return cljs.core._remove_method.call(null,multifn,dispatch_val);
  10205. });
  10206. /**
  10207. * Causes the multimethod to prefer matches of dispatch-val-x over dispatch-val-y
  10208. * when there is a conflict
  10209. */
  10210. cljs.core.prefer_method = (function prefer_method(multifn,dispatch_val_x,dispatch_val_y){
  10211. return cljs.core._prefer_method.call(null,multifn,dispatch_val_x,dispatch_val_y);
  10212. });
  10213. /**
  10214. * Given a multimethod, returns a map of dispatch values -> dispatch fns
  10215. */
  10216. cljs.core.methods$ = (function methods$(multifn){
  10217. return cljs.core._methods.call(null,multifn);
  10218. });
  10219. /**
  10220. * Given a multimethod and a dispatch value, returns the dispatch fn
  10221. * that would apply to that value, or nil if none apply and no default
  10222. */
  10223. cljs.core.get_method = (function get_method(multifn,dispatch_val){
  10224. return cljs.core._get_method.call(null,multifn,dispatch_val);
  10225. });
  10226. /**
  10227. * Given a multimethod, returns a map of preferred value -> set of other values
  10228. */
  10229. cljs.core.prefers = (function prefers(multifn){
  10230. return cljs.core._prefers.call(null,multifn);
  10231. });