/*
 *  Copyright © 2008 Fair Oaks Labs, Inc.
 *  All rights reserved.
 */
Base64=new function(){this._symbols=new String("ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=").split("");this._symbolsInv={};for(var A=0;A<this._symbols.length;A++){this._symbolsInv[this._symbols[A]]=A}this.Encode=function(B){var F=[],D=this._symbols,C;function E(I,H,G){var M,L,K,J;M=(I>>2)&63;L=((I&3)<<4)|((H>>4)&15);K=((H&15)<<2)|((G>>6)&3);J=G&63;F.push(D[M]);F.push(D[L]);F.push(D[K]);F.push(D[J])}for(C=0;C<B.length-2;C+=3){E(B[C],B[C+1],B[C+2])}switch(B.length%3){case 1:E(B[B.length-1],0,0);F[F.length-2]="=";F[F.length-1]="=";break;case 2:E(B[B.length-2],B[B.length-1],0);F[F.length-1]="=";break}return F.join("")};this.Decode=function(J){J=J.replace(/[^A-Za-z0-9\+\/\=]/g,"").split("");var B=new Array(3*(J.length/4)),I=0,G=this._symbolsInv,H,F,E,D,C;for(C=0;C<J.length-3;C+=4){H=G[J[C]];F=G[J[C+1]];E=G[J[C+2]];D=G[J[C+3]];B[I++]=((H&63)<<2)|((F>>4)&3);B[I++]=((F&15)<<4)|((E>>2)&15);B[I++]=((E&3)<<6)|(D&63)}if(J.length>=2){if(J[J.length-1]=="="){B.pop();if(J[J.length-2]=="="){B.pop()}}}return B}}();