Compiled from "core.clj"
public final class ring_buffer.core.RingBuffer extends java.lang.Object implements clojure.lang.Counted,clojure.lang.IPersistentCollection,clojure.lang.IPersistentStack,clojure.lang.IObj,clojure.lang.Sequential,clojure.lang.IType{
public static final clojure.lang.Var const__0;

public static final clojure.lang.Var const__1;

public static final clojure.lang.Var const__2;

public static final clojure.lang.Var const__3;

public static final clojure.lang.Var const__4;

public static final clojure.lang.Var const__5;

public static final clojure.lang.Var const__6;

public static final clojure.lang.Var const__7;

public static final clojure.lang.Var const__8;

public static final clojure.lang.Var const__9;

public static final clojure.lang.Var const__10;

public static final java.lang.Object const__11;

public static final clojure.lang.Var const__12;

public static final clojure.lang.Var const__13;

public static final clojure.lang.Var const__14;

public static final clojure.lang.Var const__15;

public static final clojure.lang.Var const__16;

public static final clojure.lang.Var const__17;

public final long start;

public final long len;

public final java.lang.Object buf;

public final java.lang.Object meta;

public static {};
  Code:
   0:	ldc	#41; //String clojure.core
   2:	ldc	#43; //String =
   4:	invokestatic	#49; //Method clojure/lang/RT.var:(Ljava/lang/String;Ljava/lang/String;)Lclojure/lang/Var;
   7:	checkcast	#51; //class clojure/lang/Var
   10:	putstatic	#53; //Field const__0:Lclojure/lang/Var;
   13:	ldc	#41; //String clojure.core
   15:	ldc	#55; //String count
   17:	invokestatic	#49; //Method clojure/lang/RT.var:(Ljava/lang/String;Ljava/lang/String;)Lclojure/lang/Var;
   20:	checkcast	#51; //class clojure/lang/Var
   23:	putstatic	#57; //Field const__1:Lclojure/lang/Var;
   26:	ldc	#41; //String clojure.core
   28:	ldc	#59; //String mod
   30:	invokestatic	#49; //Method clojure/lang/RT.var:(Ljava/lang/String;Ljava/lang/String;)Lclojure/lang/Var;
   33:	checkcast	#51; //class clojure/lang/Var
   36:	putstatic	#61; //Field const__2:Lclojure/lang/Var;
   39:	ldc	#41; //String clojure.core
   41:	ldc	#63; //String inc
   43:	invokestatic	#49; //Method clojure/lang/RT.var:(Ljava/lang/String;Ljava/lang/String;)Lclojure/lang/Var;
   46:	checkcast	#51; //class clojure/lang/Var
   49:	putstatic	#65; //Field const__3:Lclojure/lang/Var;
   52:	ldc	#41; //String clojure.core
   54:	ldc	#67; //String assoc
   56:	invokestatic	#49; //Method clojure/lang/RT.var:(Ljava/lang/String;Ljava/lang/String;)Lclojure/lang/Var;
   59:	checkcast	#51; //class clojure/lang/Var
   62:	putstatic	#69; //Field const__4:Lclojure/lang/Var;
   65:	ldc	#41; //String clojure.core
   67:	ldc	#71; //String +
   69:	invokestatic	#49; //Method clojure/lang/RT.var:(Ljava/lang/String;Ljava/lang/String;)Lclojure/lang/Var;
   72:	checkcast	#51; //class clojure/lang/Var
   75:	putstatic	#73; //Field const__5:Lclojure/lang/Var;
   78:	ldc	#41; //String clojure.core
   80:	ldc	#75; //String seq
   82:	invokestatic	#49; //Method clojure/lang/RT.var:(Ljava/lang/String;Ljava/lang/String;)Lclojure/lang/Var;
   85:	checkcast	#51; //class clojure/lang/Var
   88:	putstatic	#77; //Field const__6:Lclojure/lang/Var;
   91:	ldc	#41; //String clojure.core
   93:	ldc	#79; //String range
   95:	invokestatic	#49; //Method clojure/lang/RT.var:(Ljava/lang/String;Ljava/lang/String;)Lclojure/lang/Var;
   98:	checkcast	#51; //class clojure/lang/Var
   101:	putstatic	#81; //Field const__7:Lclojure/lang/Var;
   104:	ldc	#41; //String clojure.core
   106:	ldc	#83; //String nth
   108:	invokestatic	#49; //Method clojure/lang/RT.var:(Ljava/lang/String;Ljava/lang/String;)Lclojure/lang/Var;
   111:	checkcast	#51; //class clojure/lang/Var
   114:	putstatic	#85; //Field const__8:Lclojure/lang/Var;
   117:	ldc	#41; //String clojure.core
   119:	ldc	#87; //String zero?
   121:	invokestatic	#49; //Method clojure/lang/RT.var:(Ljava/lang/String;Ljava/lang/String;)Lclojure/lang/Var;
   124:	checkcast	#51; //class clojure/lang/Var
   127:	putstatic	#89; //Field const__9:Lclojure/lang/Var;
   130:	ldc	#41; //String clojure.core
   132:	ldc	#91; //String dec
   134:	invokestatic	#49; //Method clojure/lang/RT.var:(Ljava/lang/String;Ljava/lang/String;)Lclojure/lang/Var;
   137:	checkcast	#51; //class clojure/lang/Var
   140:	putstatic	#93; //Field const__10:Lclojure/lang/Var;
   143:	lconst_0
   144:	invokestatic	#99; //Method java/lang/Long.valueOf:(J)Ljava/lang/Long;
   147:	putstatic	#101; //Field const__11:Ljava/lang/Object;
   150:	ldc	#41; //String clojure.core
   152:	ldc	#103; //String vec
   154:	invokestatic	#49; //Method clojure/lang/RT.var:(Ljava/lang/String;Ljava/lang/String;)Lclojure/lang/Var;
   157:	checkcast	#51; //class clojure/lang/Var
   160:	putstatic	#105; //Field const__12:Lclojure/lang/Var;
   163:	ldc	#41; //String clojure.core
   165:	ldc	#107; //String repeat
   167:	invokestatic	#49; //Method clojure/lang/RT.var:(Ljava/lang/String;Ljava/lang/String;)Lclojure/lang/Var;
   170:	checkcast	#51; //class clojure/lang/Var
   173:	putstatic	#109; //Field const__13:Lclojure/lang/Var;
   176:	ldc	#41; //String clojure.core
   178:	ldc	#111; //String sequential?
   180:	invokestatic	#49; //Method clojure/lang/RT.var:(Ljava/lang/String;Ljava/lang/String;)Lclojure/lang/Var;
   183:	checkcast	#51; //class clojure/lang/Var
   186:	putstatic	#113; //Field const__14:Lclojure/lang/Var;
   189:	ldc	#41; //String clojure.core
   191:	ldc	#115; //String not
   193:	invokestatic	#49; //Method clojure/lang/RT.var:(Ljava/lang/String;Ljava/lang/String;)Lclojure/lang/Var;
   196:	checkcast	#51; //class clojure/lang/Var
   199:	putstatic	#117; //Field const__15:Lclojure/lang/Var;
   202:	ldc	#41; //String clojure.core
   204:	ldc	#119; //String counted?
   206:	invokestatic	#49; //Method clojure/lang/RT.var:(Ljava/lang/String;Ljava/lang/String;)Lclojure/lang/Var;
   209:	checkcast	#51; //class clojure/lang/Var
   212:	putstatic	#121; //Field const__16:Lclojure/lang/Var;
   215:	ldc	#41; //String clojure.core
   217:	ldc	#123; //String pr-str
   219:	invokestatic	#49; //Method clojure/lang/RT.var:(Ljava/lang/String;Ljava/lang/String;)Lclojure/lang/Var;
   222:	checkcast	#51; //class clojure/lang/Var
   225:	putstatic	#125; //Field const__17:Lclojure/lang/Var;
   228:	return

  LineNumberTable: 
   line 7: 0



public ring_buffer.core.RingBuffer(long, long, java.lang.Object, java.lang.Object);
  Code:
   0:	aload_0
   1:	invokespecial	#134; //Method java/lang/Object."<init>":()V
   4:	aload_0
   5:	lload_1
   6:	putfield	#136; //Field start:J
   9:	aload_0
   10:	lload_3
   11:	putfield	#138; //Field len:J
   14:	aload_0
   15:	aload	5
   17:	putfield	#140; //Field buf:Ljava/lang/Object;
   20:	aload_0
   21:	aload	6
   23:	putfield	#142; //Field meta:Ljava/lang/Object;
   26:	return

  LineNumberTable: 
   line 7: 0



public static clojure.lang.IPersistentVector getBasis();
  Code:
   0:	iconst_4
   1:	anewarray	#4; //class java/lang/Object
   4:	dup
   5:	iconst_0
   6:	aconst_null
   7:	ldc	#145; //String start
   9:	invokestatic	#151; //Method clojure/lang/Symbol.intern:(Ljava/lang/String;Ljava/lang/String;)Lclojure/lang/Symbol;
   12:	checkcast	#12; //class clojure/lang/IObj
   15:	iconst_2
   16:	anewarray	#4; //class java/lang/Object
   19:	dup
   20:	iconst_0
   21:	aconst_null
   22:	ldc	#153; //String tag
   24:	invokestatic	#157; //Method clojure/lang/RT.keyword:(Ljava/lang/String;Ljava/lang/String;)Lclojure/lang/Keyword;
   27:	aastore
   28:	dup
   29:	iconst_1
   30:	aconst_null
   31:	ldc	#159; //String long
   33:	invokestatic	#151; //Method clojure/lang/Symbol.intern:(Ljava/lang/String;Ljava/lang/String;)Lclojure/lang/Symbol;
   36:	aastore
   37:	invokestatic	#163; //Method clojure/lang/RT.map:([Ljava/lang/Object;)Lclojure/lang/IPersistentMap;
   40:	checkcast	#165; //class clojure/lang/IPersistentMap
   43:	invokeinterface	#169,  2; //InterfaceMethod clojure/lang/IObj.withMeta:(Lclojure/lang/IPersistentMap;)Lclojure/lang/IObj;
   48:	aastore
   49:	dup
   50:	iconst_1
   51:	aconst_null
   52:	ldc	#170; //String len
   54:	invokestatic	#151; //Method clojure/lang/Symbol.intern:(Ljava/lang/String;Ljava/lang/String;)Lclojure/lang/Symbol;
   57:	checkcast	#12; //class clojure/lang/IObj
   60:	iconst_2
   61:	anewarray	#4; //class java/lang/Object
   64:	dup
   65:	iconst_0
   66:	aconst_null
   67:	ldc	#153; //String tag
   69:	invokestatic	#157; //Method clojure/lang/RT.keyword:(Ljava/lang/String;Ljava/lang/String;)Lclojure/lang/Keyword;
   72:	aastore
   73:	dup
   74:	iconst_1
   75:	aconst_null
   76:	ldc	#159; //String long
   78:	invokestatic	#151; //Method clojure/lang/Symbol.intern:(Ljava/lang/String;Ljava/lang/String;)Lclojure/lang/Symbol;
   81:	aastore
   82:	invokestatic	#163; //Method clojure/lang/RT.map:([Ljava/lang/Object;)Lclojure/lang/IPersistentMap;
   85:	checkcast	#165; //class clojure/lang/IPersistentMap
   88:	invokeinterface	#169,  2; //InterfaceMethod clojure/lang/IObj.withMeta:(Lclojure/lang/IPersistentMap;)Lclojure/lang/IObj;
   93:	aastore
   94:	dup
   95:	iconst_2
   96:	aconst_null
   97:	ldc	#171; //String buf
   99:	invokestatic	#151; //Method clojure/lang/Symbol.intern:(Ljava/lang/String;Ljava/lang/String;)Lclojure/lang/Symbol;
   102:	aastore
   103:	dup
   104:	iconst_3
   105:	aconst_null
   106:	ldc	#172; //String meta
   108:	invokestatic	#151; //Method clojure/lang/Symbol.intern:(Ljava/lang/String;Ljava/lang/String;)Lclojure/lang/Symbol;
   111:	aastore
   112:	invokestatic	#176; //Method clojure/lang/RT.vector:([Ljava/lang/Object;)Lclojure/lang/IPersistentVector;
   115:	areturn




public int count();
  Code:
   0:	aload_0
   1:	getfield	#138; //Field len:J
   4:	invokestatic	#181; //Method clojure/lang/RT.intCast:(J)I
   7:	ireturn

  LineNumberTable: 
   line 7: 0

  LocalVariableTable: 
   Start  Length  Slot  Name   Signature
   0      7      0    this       Lring_buffer/core/RingBuffer;


public clojure.lang.IPersistentMap meta();
  Code:
   0:	aload_0
   1:	getfield	#142; //Field meta:Ljava/lang/Object;
   4:	checkcast	#165; //class clojure/lang/IPersistentMap
   7:	areturn

  LineNumberTable: 
   line 7: 0

  LocalVariableTable: 
   Start  Length  Slot  Name   Signature
   0      7      0    this       Lring_buffer/core/RingBuffer;


public clojure.lang.IObj withMeta(clojure.lang.IPersistentMap);
  Code:
   0:	new	#2; //class ring_buffer/core/RingBuffer
   3:	dup
   4:	aload_0
   5:	getfield	#136; //Field start:J
   8:	aload_0
   9:	getfield	#138; //Field len:J
   12:	aload_0
   13:	getfield	#140; //Field buf:Ljava/lang/Object;
   16:	aload_1
   17:	aconst_null
   18:	astore_1
   19:	invokespecial	#186; //Method "<init>":(JJLjava/lang/Object;Ljava/lang/Object;)V
   22:	checkcast	#12; //class clojure/lang/IObj
   25:	areturn

  LineNumberTable: 
   line 7: 0

  LocalVariableTable: 
   Start  Length  Slot  Name   Signature
   0      25      0    this       Lring_buffer/core/RingBuffer;
   0      25      1    m       Lclojure/lang/IPersistentMap;


public java.lang.String toString();
  Code:
   0:	getstatic	#125; //Field const__17:Lclojure/lang/Var;
   3:	invokevirtual	#194; //Method clojure/lang/Var.getRawRoot:()Ljava/lang/Object;
   6:	checkcast	#196; //class clojure/lang/IFn
   9:	new	#198; //class clojure/lang/LazySeq
   12:	dup
   13:	new	#200; //class ring_buffer/core/RingBuffer$fn__28
   16:	dup
   17:	aload_0
   18:	invokespecial	#203; //Method ring_buffer/core/RingBuffer$fn__28."<init>":(Ljava/lang/Object;)V
   21:	checkcast	#196; //class clojure/lang/IFn
   24:	invokespecial	#206; //Method clojure/lang/LazySeq."<init>":(Lclojure/lang/IFn;)V
   27:	invokeinterface	#210,  2; //InterfaceMethod clojure/lang/IFn.invoke:(Ljava/lang/Object;)Ljava/lang/Object;
   32:	checkcast	#212; //class java/lang/String
   35:	areturn

  LineNumberTable: 
   line 7: 0
   line 20: 0

  LocalVariableTable: 
   Start  Length  Slot  Name   Signature
   0      35      0    this       Lring_buffer/core/RingBuffer;


public boolean equiv(java.lang.Object);
  Code:
   0:	getstatic	#113; //Field const__14:Lclojure/lang/Var;
   3:	invokevirtual	#194; //Method clojure/lang/Var.getRawRoot:()Ljava/lang/Object;
   6:	checkcast	#196; //class clojure/lang/IFn
   9:	aload_1
   10:	invokeinterface	#210,  2; //InterfaceMethod clojure/lang/IFn.invoke:(Ljava/lang/Object;)Ljava/lang/Object;
   15:	astore_2
   16:	aload_2
   17:	dup
   18:	ifnull	169
   21:	getstatic	#220; //Field java/lang/Boolean.FALSE:Ljava/lang/Boolean;
   24:	if_acmpeq	170
   27:	getstatic	#117; //Field const__15:Lclojure/lang/Var;
   30:	invokevirtual	#194; //Method clojure/lang/Var.getRawRoot:()Ljava/lang/Object;
   33:	checkcast	#196; //class clojure/lang/IFn
   36:	getstatic	#121; //Field const__16:Lclojure/lang/Var;
   39:	invokevirtual	#194; //Method clojure/lang/Var.getRawRoot:()Ljava/lang/Object;
   42:	checkcast	#196; //class clojure/lang/IFn
   45:	aload_1
   46:	invokeinterface	#210,  2; //InterfaceMethod clojure/lang/IFn.invoke:(Ljava/lang/Object;)Ljava/lang/Object;
   51:	invokeinterface	#210,  2; //InterfaceMethod clojure/lang/IFn.invoke:(Ljava/lang/Object;)Ljava/lang/Object;
   56:	astore_3
   57:	aload_3
   58:	dup
   59:	ifnull	74
   62:	getstatic	#220; //Field java/lang/Boolean.FALSE:Ljava/lang/Boolean;
   65:	if_acmpeq	75
   68:	aload_3
   69:	aconst_null
   70:	astore_3
   71:	goto	100
   74:	pop
   75:	aload_0
   76:	invokestatic	#223; //Method clojure/lang/RT.count:(Ljava/lang/Object;)I
   79:	i2l
   80:	aload_1
   81:	invokestatic	#223; //Method clojure/lang/RT.count:(Ljava/lang/Object;)I
   84:	i2l
   85:	invokestatic	#228; //Method clojure/lang/Util.equiv:(JJ)Z
   88:	ifeq	97
   91:	getstatic	#231; //Field java/lang/Boolean.TRUE:Ljava/lang/Boolean;
   94:	goto	100
   97:	getstatic	#220; //Field java/lang/Boolean.FALSE:Ljava/lang/Boolean;
   100:	astore_3
   101:	aload_3
   102:	dup
   103:	ifnull	162
   106:	getstatic	#220; //Field java/lang/Boolean.FALSE:Ljava/lang/Boolean;
   109:	if_acmpeq	163
   112:	getstatic	#77; //Field const__6:Lclojure/lang/Var;
   115:	invokevirtual	#194; //Method clojure/lang/Var.getRawRoot:()Ljava/lang/Object;
   118:	checkcast	#196; //class clojure/lang/IFn
   121:	aload_0
   122:	invokeinterface	#210,  2; //InterfaceMethod clojure/lang/IFn.invoke:(Ljava/lang/Object;)Ljava/lang/Object;
   127:	getstatic	#77; //Field const__6:Lclojure/lang/Var;
   130:	invokevirtual	#194; //Method clojure/lang/Var.getRawRoot:()Ljava/lang/Object;
   133:	checkcast	#196; //class clojure/lang/IFn
   136:	aload_1
   137:	aconst_null
   138:	astore_1
   139:	invokeinterface	#210,  2; //InterfaceMethod clojure/lang/IFn.invoke:(Ljava/lang/Object;)Ljava/lang/Object;
   144:	invokestatic	#235; //Method clojure/lang/Util.equiv:(Ljava/lang/Object;Ljava/lang/Object;)Z
   147:	ifeq	156
   150:	getstatic	#231; //Field java/lang/Boolean.TRUE:Ljava/lang/Boolean;
   153:	goto	159
   156:	getstatic	#220; //Field java/lang/Boolean.FALSE:Ljava/lang/Boolean;
   159:	goto	166
   162:	pop
   163:	aload_3
   164:	aconst_null
   165:	astore_3
   166:	goto	173
   169:	pop
   170:	aload_2
   171:	aconst_null
   172:	astore_2
   173:	checkcast	#216; //class java/lang/Boolean
   176:	invokevirtual	#241; //Method java/lang/Boolean.booleanValue:()Z
   179:	ireturn

  LineNumberTable: 
   line 7: 0
   line 32: 0
   line 32: 16
   line 33: 27
   line 33: 36
   line 33: 57
   line 34: 75
   line 34: 75
   line 34: 80
   line 32: 101
   line 35: 112
   line 35: 112
   line 35: 127

  LocalVariableTable: 
   Start  Length  Slot  Name   Signature
   57      43      3    or__3824__auto__31       Ljava/lang/Object;
   101      65      3    and__3822__auto__32       Ljava/lang/Object;
   16      157      2    and__3822__auto__33       Ljava/lang/Object;
   0      179      0    this       Lring_buffer/core/RingBuffer;
   0      179      1    other       Ljava/lang/Object;


public clojure.lang.IPersistentCollection empty();
  Code:
   0:	new	#2; //class ring_buffer/core/RingBuffer
   3:	dup
   4:	lconst_0
   5:	lconst_0
   6:	getstatic	#105; //Field const__12:Lclojure/lang/Var;
   9:	invokevirtual	#194; //Method clojure/lang/Var.getRawRoot:()Ljava/lang/Object;
   12:	checkcast	#196; //class clojure/lang/IFn
   15:	getstatic	#109; //Field const__13:Lclojure/lang/Var;
   18:	invokevirtual	#194; //Method clojure/lang/Var.getRawRoot:()Ljava/lang/Object;
   21:	checkcast	#196; //class clojure/lang/IFn
   24:	aload_0
   25:	getfield	#140; //Field buf:Ljava/lang/Object;
   28:	invokestatic	#223; //Method clojure/lang/RT.count:(Ljava/lang/Object;)I
   31:	invokestatic	#249; //Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;
   34:	aconst_null
   35:	invokeinterface	#252,  3; //InterfaceMethod clojure/lang/IFn.invoke:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
   40:	invokeinterface	#210,  2; //InterfaceMethod clojure/lang/IFn.invoke:(Ljava/lang/Object;)Ljava/lang/Object;
   45:	aload_0
   46:	getfield	#142; //Field meta:Ljava/lang/Object;
   49:	invokespecial	#186; //Method "<init>":(JJLjava/lang/Object;Ljava/lang/Object;)V
   52:	checkcast	#8; //class clojure/lang/IPersistentCollection
   55:	areturn

  LineNumberTable: 
   line 7: 0
   line 30: 6
   line 30: 15
   line 30: 24

  LocalVariableTable: 
   Start  Length  Slot  Name   Signature
   0      55      0    this       Lring_buffer/core/RingBuffer;


public clojure.lang.IPersistentStack pop();
  Code:
   0:	aload_0
   1:	getfield	#138; //Field len:J
   4:	lconst_0
   5:	lcmp
   6:	ifne	30
   9:	new	#256; //class java/lang/IllegalStateException
   12:	dup
   13:	ldc_w	#258; //String Can't pop empty queue
   16:	checkcast	#212; //class java/lang/String
   19:	invokespecial	#261; //Method java/lang/IllegalStateException."<init>":(Ljava/lang/String;)V
   22:	checkcast	#263; //class java/lang/Throwable
   25:	athrow
   26:	goto	113
   29:	pop
   30:	new	#2; //class ring_buffer/core/RingBuffer
   33:	dup
   34:	getstatic	#61; //Field const__2:Lclojure/lang/Var;
   37:	invokevirtual	#194; //Method clojure/lang/Var.getRawRoot:()Ljava/lang/Object;
   40:	checkcast	#196; //class clojure/lang/IFn
   43:	aload_0
   44:	getfield	#136; //Field start:J
   47:	invokestatic	#269; //Method clojure/lang/Numbers.unchecked_inc:(J)J
   50:	invokestatic	#273; //Method clojure/lang/Numbers.num:(J)Ljava/lang/Number;
   53:	aload_0
   54:	getfield	#140; //Field buf:Ljava/lang/Object;
   57:	invokestatic	#223; //Method clojure/lang/RT.count:(Ljava/lang/Object;)I
   60:	invokestatic	#249; //Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;
   63:	invokeinterface	#252,  3; //InterfaceMethod clojure/lang/IFn.invoke:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
   68:	checkcast	#275; //class java/lang/Number
   71:	invokestatic	#279; //Method clojure/lang/RT.uncheckedLongCast:(Ljava/lang/Object;)J
   74:	aload_0
   75:	getfield	#138; //Field len:J
   78:	lconst_1
   79:	lsub
   80:	getstatic	#69; //Field const__4:Lclojure/lang/Var;
   83:	invokevirtual	#194; //Method clojure/lang/Var.getRawRoot:()Ljava/lang/Object;
   86:	checkcast	#196; //class clojure/lang/IFn
   89:	aload_0
   90:	getfield	#140; //Field buf:Ljava/lang/Object;
   93:	aload_0
   94:	getfield	#136; //Field start:J
   97:	invokestatic	#273; //Method clojure/lang/Numbers.num:(J)Ljava/lang/Number;
   100:	aconst_null
   101:	invokeinterface	#282,  4; //InterfaceMethod clojure/lang/IFn.invoke:(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
   106:	aload_0
   107:	getfield	#142; //Field meta:Ljava/lang/Object;
   110:	invokespecial	#186; //Method "<init>":(JJLjava/lang/Object;Ljava/lang/Object;)V
   113:	checkcast	#10; //class clojure/lang/IPersistentStack
   116:	areturn

  LineNumberTable: 
   line 7: 0
   line 26: 0
   line 26: 0
   line 28: 34
   line 28: 43
   line 28: 53
   line 28: 74
   line 28: 80

  LocalVariableTable: 
   Start  Length  Slot  Name   Signature
   0      116      0    this       Lring_buffer/core/RingBuffer;


public java.lang.Object peek();
  Code:
   0:	aload_0
   1:	getfield	#140; //Field buf:Ljava/lang/Object;
   4:	getstatic	#61; //Field const__2:Lclojure/lang/Var;
   7:	invokevirtual	#194; //Method clojure/lang/Var.getRawRoot:()Ljava/lang/Object;
   10:	checkcast	#196; //class clojure/lang/IFn
   13:	aload_0
   14:	getfield	#136; //Field start:J
   17:	invokestatic	#273; //Method clojure/lang/Numbers.num:(J)Ljava/lang/Number;
   20:	aload_0
   21:	getfield	#140; //Field buf:Ljava/lang/Object;
   24:	invokestatic	#223; //Method clojure/lang/RT.count:(Ljava/lang/Object;)I
   27:	invokestatic	#249; //Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;
   30:	invokeinterface	#252,  3; //InterfaceMethod clojure/lang/IFn.invoke:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
   35:	checkcast	#275; //class java/lang/Number
   38:	invokestatic	#286; //Method clojure/lang/RT.uncheckedIntCast:(Ljava/lang/Object;)I
   41:	invokestatic	#289; //Method clojure/lang/RT.nth:(Ljava/lang/Object;I)Ljava/lang/Object;
   44:	areturn

  LineNumberTable: 
   line 7: 0
   line 24: 0
   line 24: 4
   line 24: 20

  LocalVariableTable: 
   Start  Length  Slot  Name   Signature
   0      44      0    this       Lring_buffer/core/RingBuffer;


public clojure.lang.ISeq seq();
  Code:
   0:	getstatic	#77; //Field const__6:Lclojure/lang/Var;
   3:	invokevirtual	#194; //Method clojure/lang/Var.getRawRoot:()Ljava/lang/Object;
   6:	checkcast	#196; //class clojure/lang/IFn
   9:	new	#292; //class ring_buffer/core/RingBuffer$iter__15__19
   12:	dup
   13:	aload_0
   14:	getfield	#136; //Field start:J
   17:	aload_0
   18:	getfield	#140; //Field buf:Ljava/lang/Object;
   21:	invokespecial	#295; //Method ring_buffer/core/RingBuffer$iter__15__19."<init>":(JLjava/lang/Object;)V
   24:	astore_1
   25:	aload_1
   26:	aconst_null
   27:	astore_1
   28:	checkcast	#196; //class clojure/lang/IFn
   31:	getstatic	#81; //Field const__7:Lclojure/lang/Var;
   34:	invokevirtual	#194; //Method clojure/lang/Var.getRawRoot:()Ljava/lang/Object;
   37:	checkcast	#196; //class clojure/lang/IFn
   40:	aload_0
   41:	getfield	#138; //Field len:J
   44:	invokestatic	#273; //Method clojure/lang/Numbers.num:(J)Ljava/lang/Number;
   47:	invokeinterface	#210,  2; //InterfaceMethod clojure/lang/IFn.invoke:(Ljava/lang/Object;)Ljava/lang/Object;
   52:	invokeinterface	#210,  2; //InterfaceMethod clojure/lang/IFn.invoke:(Ljava/lang/Object;)Ljava/lang/Object;
   57:	invokeinterface	#210,  2; //InterfaceMethod clojure/lang/IFn.invoke:(Ljava/lang/Object;)Ljava/lang/Object;
   62:	checkcast	#298; //class clojure/lang/ISeq
   65:	areturn

  LineNumberTable: 
   line 7: 0
   line 43: 0
   line 43: 25
   line 43: 31

  LocalVariableTable: 
   Start  Length  Slot  Name   Signature
   25      32      1    iter__4468__auto__34       Ljava/lang/Object;
   0      65      0    this       Lring_buffer/core/RingBuffer;


public clojure.lang.IPersistentCollection cons(java.lang.Object);
  Code:
   0:	aload_0
   1:	getfield	#138; //Field len:J
   4:	aload_0
   5:	getfield	#140; //Field buf:Ljava/lang/Object;
   8:	invokestatic	#223; //Method clojure/lang/RT.count:(Ljava/lang/Object;)I
   11:	i2l
   12:	lcmp
   13:	ifne	100
   16:	new	#2; //class ring_buffer/core/RingBuffer
   19:	dup
   20:	getstatic	#61; //Field const__2:Lclojure/lang/Var;
   23:	invokevirtual	#194; //Method clojure/lang/Var.getRawRoot:()Ljava/lang/Object;
   26:	checkcast	#196; //class clojure/lang/IFn
   29:	aload_0
   30:	getfield	#136; //Field start:J
   33:	invokestatic	#269; //Method clojure/lang/Numbers.unchecked_inc:(J)J
   36:	invokestatic	#273; //Method clojure/lang/Numbers.num:(J)Ljava/lang/Number;
   39:	aload_0
   40:	getfield	#138; //Field len:J
   43:	invokestatic	#273; //Method clojure/lang/Numbers.num:(J)Ljava/lang/Number;
   46:	invokeinterface	#252,  3; //InterfaceMethod clojure/lang/IFn.invoke:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
   51:	checkcast	#275; //class java/lang/Number
   54:	invokestatic	#279; //Method clojure/lang/RT.uncheckedLongCast:(Ljava/lang/Object;)J
   57:	aload_0
   58:	getfield	#138; //Field len:J
   61:	getstatic	#69; //Field const__4:Lclojure/lang/Var;
   64:	invokevirtual	#194; //Method clojure/lang/Var.getRawRoot:()Ljava/lang/Object;
   67:	checkcast	#196; //class clojure/lang/IFn
   70:	aload_0
   71:	getfield	#140; //Field buf:Ljava/lang/Object;
   74:	aload_0
   75:	getfield	#136; //Field start:J
   78:	invokestatic	#273; //Method clojure/lang/Numbers.num:(J)Ljava/lang/Number;
   81:	aload_1
   82:	aconst_null
   83:	astore_1
   84:	invokeinterface	#282,  4; //InterfaceMethod clojure/lang/IFn.invoke:(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
   89:	aload_0
   90:	getfield	#142; //Field meta:Ljava/lang/Object;
   93:	invokespecial	#186; //Method "<init>":(JJLjava/lang/Object;Ljava/lang/Object;)V
   96:	goto	180
   99:	pop
   100:	new	#2; //class ring_buffer/core/RingBuffer
   103:	dup
   104:	aload_0
   105:	getfield	#136; //Field start:J
   108:	aload_0
   109:	getfield	#138; //Field len:J
   112:	lconst_1
   113:	ladd
   114:	getstatic	#69; //Field const__4:Lclojure/lang/Var;
   117:	invokevirtual	#194; //Method clojure/lang/Var.getRawRoot:()Ljava/lang/Object;
   120:	checkcast	#196; //class clojure/lang/IFn
   123:	aload_0
   124:	getfield	#140; //Field buf:Ljava/lang/Object;
   127:	getstatic	#61; //Field const__2:Lclojure/lang/Var;
   130:	invokevirtual	#194; //Method clojure/lang/Var.getRawRoot:()Ljava/lang/Object;
   133:	checkcast	#196; //class clojure/lang/IFn
   136:	aload_0
   137:	getfield	#136; //Field start:J
   140:	aload_0
   141:	getfield	#138; //Field len:J
   144:	invokestatic	#304; //Method clojure/lang/Numbers.unchecked_add:(JJ)J
   147:	invokestatic	#273; //Method clojure/lang/Numbers.num:(J)Ljava/lang/Number;
   150:	aload_0
   151:	getfield	#140; //Field buf:Ljava/lang/Object;
   154:	invokestatic	#223; //Method clojure/lang/RT.count:(Ljava/lang/Object;)I
   157:	invokestatic	#249; //Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;
   160:	invokeinterface	#252,  3; //InterfaceMethod clojure/lang/IFn.invoke:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
   165:	aload_1
   166:	aconst_null
   167:	astore_1
   168:	invokeinterface	#282,  4; //InterfaceMethod clojure/lang/IFn.invoke:(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
   173:	aload_0
   174:	getfield	#142; //Field meta:Ljava/lang/Object;
   177:	invokespecial	#186; //Method "<init>":(JJLjava/lang/Object;Ljava/lang/Object;)V
   180:	checkcast	#8; //class clojure/lang/IPersistentCollection
   183:	areturn

  LineNumberTable: 
   line 7: 0
   line 39: 0
   line 39: 0
   line 39: 4
   line 40: 20
   line 40: 29
   line 40: 61
   line 41: 108
   line 41: 114
   line 41: 127
   line 41: 136
   line 41: 150

  LocalVariableTable: 
   Start  Length  Slot  Name   Signature
   0      183      0    this       Lring_buffer/core/RingBuffer;
   0      183      1    x       Ljava/lang/Object;


}

