function d(a,b,e,f){e&&e.write(0);this.spi=a;this.ad=f?(f<<1)+64:64;this.cs=b;this.n=255;this.olat=this.pu=0;this.A0=new c(1,this);this.A1=new c(2,this);this.A2=new c(4,this);this.A3=new c(8,this);this.A4=new c(16,this);this.A5=new c(32,this);this.A6=new c(64,this);this.A7=new c(128,this);e&&(this.rst=e,this.rst.write(1))}function c(a,b){this.b=a;this.p=b}exports.connect=function(a,b,e,f){return new d(a,b,e,f)};d.prototype.s=function(a,b){this.spi.write([this.ad,a,b],this.cs)};
d.prototype.r=function(a){return this.spi.send([this.ad+1,a,0])&255};d.prototype.mode=function(a,b){this.m(1<["input","output","input_pullup"].indexOf(b))throw"Pin mode "+b+" not available";this.s(0,"output"==b?this.n&=~a:this.n|=a);this.s(6,"input_pullup"==b?this.pu|=a:this.pu&=~a)};d.prototype.write=function(a,b){a=1<>a};c.prototype.set=function(){this.p.s(9,
this.p.olat|=this.b)};c.prototype.reset=function(){this.p.s(9,this.p.olat&=~this.b)};c.prototype.write=function(a){this.p.s(9,a?this.p.olat|=this.b:this.p.olat&=~this.b)};c.prototype.read=function(){return this.p.r(9)[0]&this.b?1:0};c.prototype.mode=function(a){this.p.m(this.b,a)}