# This file is part of bish-bosh. It is subject to the licence terms in the COPYRIGHT file found in the top-level directory of this distribution and at https://raw.githubusercontent.com/raphaelcohn/bish-bosh/master/COPYRIGHT. No part of bish-bosh, including this file, may be copied, modified, propagated, or distributed except according to the terms contained in the COPYRIGHT file.
# Copyright © 2014-2015 The developers of bish-bosh. See the COPYRIGHT file in the top-level directory of this distribution and at https://raw.githubusercontent.com/raphaelcohn/bish-bosh/master/COPYRIGHT.


bishbosh_connection_write_byteCache=()
# bash subshell doesn't handle ASCII NULL, so we can't simply test for it
# bash command substitution does funky things to \x01, \xFF, so we use file comparisons instead
# bash can't read NULL
# bash can't echo or printf NULL (? can it print it - no)
# ASCII NULL string is converted to empty inside bash, so this is near useless, but it keeps the array length correct
bishbosh_connection_write_byteCache[0]=$'\x00'
bishbosh_connection_write_byteCache[1]=$'\x01'
bishbosh_connection_write_byteCache[2]=$'\x02'
bishbosh_connection_write_byteCache[3]=$'\x03'
bishbosh_connection_write_byteCache[4]=$'\x04'
bishbosh_connection_write_byteCache[5]=$'\x05'
bishbosh_connection_write_byteCache[6]=$'\x06'
bishbosh_connection_write_byteCache[7]=$'\x07'
bishbosh_connection_write_byteCache[8]=$'\x08'
bishbosh_connection_write_byteCache[9]=$'\x09'
bishbosh_connection_write_byteCache[10]=$'\x0A'
bishbosh_connection_write_byteCache[11]=$'\x0B'
bishbosh_connection_write_byteCache[12]=$'\x0C'
bishbosh_connection_write_byteCache[13]=$'\x0D'
bishbosh_connection_write_byteCache[14]=$'\x0E'
bishbosh_connection_write_byteCache[15]=$'\x0F'
bishbosh_connection_write_byteCache[16]=$'\x10'
bishbosh_connection_write_byteCache[17]=$'\x11'
bishbosh_connection_write_byteCache[18]=$'\x12'
bishbosh_connection_write_byteCache[19]=$'\x13'
bishbosh_connection_write_byteCache[20]=$'\x14'
bishbosh_connection_write_byteCache[21]=$'\x15'
bishbosh_connection_write_byteCache[22]=$'\x16'
bishbosh_connection_write_byteCache[23]=$'\x17'
bishbosh_connection_write_byteCache[24]=$'\x18'
bishbosh_connection_write_byteCache[25]=$'\x19'
bishbosh_connection_write_byteCache[26]=$'\x1A'
bishbosh_connection_write_byteCache[27]=$'\x1B'
bishbosh_connection_write_byteCache[28]=$'\x1C'
bishbosh_connection_write_byteCache[29]=$'\x1D'
bishbosh_connection_write_byteCache[30]=$'\x1E'
bishbosh_connection_write_byteCache[31]=$'\x1F'
bishbosh_connection_write_byteCache[32]=$'\x20'
bishbosh_connection_write_byteCache[33]=$'\x21'
bishbosh_connection_write_byteCache[34]=$'\x22'
bishbosh_connection_write_byteCache[35]=$'\x23'
bishbosh_connection_write_byteCache[36]=$'\x24'
bishbosh_connection_write_byteCache[37]=$'\x25'
bishbosh_connection_write_byteCache[38]=$'\x26'
bishbosh_connection_write_byteCache[39]=$'\x27'
bishbosh_connection_write_byteCache[40]=$'\x28'
bishbosh_connection_write_byteCache[41]=$'\x29'
bishbosh_connection_write_byteCache[42]=$'\x2A'
bishbosh_connection_write_byteCache[43]=$'\x2B'
bishbosh_connection_write_byteCache[44]=$'\x2C'
bishbosh_connection_write_byteCache[45]=$'\x2D'
bishbosh_connection_write_byteCache[46]=$'\x2E'
bishbosh_connection_write_byteCache[47]=$'\x2F'
bishbosh_connection_write_byteCache[48]=$'\x30'
bishbosh_connection_write_byteCache[49]=$'\x31'
bishbosh_connection_write_byteCache[50]=$'\x32'
bishbosh_connection_write_byteCache[51]=$'\x33'
bishbosh_connection_write_byteCache[52]=$'\x34'
bishbosh_connection_write_byteCache[53]=$'\x35'
bishbosh_connection_write_byteCache[54]=$'\x36'
bishbosh_connection_write_byteCache[55]=$'\x37'
bishbosh_connection_write_byteCache[56]=$'\x38'
bishbosh_connection_write_byteCache[57]=$'\x39'
bishbosh_connection_write_byteCache[58]=$'\x3A'
bishbosh_connection_write_byteCache[59]=$'\x3B'
bishbosh_connection_write_byteCache[60]=$'\x3C'
bishbosh_connection_write_byteCache[61]=$'\x3D'
bishbosh_connection_write_byteCache[62]=$'\x3E'
bishbosh_connection_write_byteCache[63]=$'\x3F'
bishbosh_connection_write_byteCache[64]=$'\x40'
bishbosh_connection_write_byteCache[65]=$'\x41'
bishbosh_connection_write_byteCache[66]=$'\x42'
bishbosh_connection_write_byteCache[67]=$'\x43'
bishbosh_connection_write_byteCache[68]=$'\x44'
bishbosh_connection_write_byteCache[69]=$'\x45'
bishbosh_connection_write_byteCache[70]=$'\x46'
bishbosh_connection_write_byteCache[71]=$'\x47'
bishbosh_connection_write_byteCache[72]=$'\x48'
bishbosh_connection_write_byteCache[73]=$'\x49'
bishbosh_connection_write_byteCache[74]=$'\x4A'
bishbosh_connection_write_byteCache[75]=$'\x4B'
bishbosh_connection_write_byteCache[76]=$'\x4C'
bishbosh_connection_write_byteCache[77]=$'\x4D'
bishbosh_connection_write_byteCache[78]=$'\x4E'
bishbosh_connection_write_byteCache[79]=$'\x4F'
bishbosh_connection_write_byteCache[80]=$'\x50'
bishbosh_connection_write_byteCache[81]=$'\x51'
bishbosh_connection_write_byteCache[82]=$'\x52'
bishbosh_connection_write_byteCache[83]=$'\x53'
bishbosh_connection_write_byteCache[84]=$'\x54'
bishbosh_connection_write_byteCache[85]=$'\x55'
bishbosh_connection_write_byteCache[86]=$'\x56'
bishbosh_connection_write_byteCache[87]=$'\x57'
bishbosh_connection_write_byteCache[88]=$'\x58'
bishbosh_connection_write_byteCache[89]=$'\x59'
bishbosh_connection_write_byteCache[90]=$'\x5A'
bishbosh_connection_write_byteCache[91]=$'\x5B'
bishbosh_connection_write_byteCache[92]=$'\x5C'
bishbosh_connection_write_byteCache[93]=$'\x5D'
bishbosh_connection_write_byteCache[94]=$'\x5E'
bishbosh_connection_write_byteCache[95]=$'\x5F'
bishbosh_connection_write_byteCache[96]=$'\x60'
bishbosh_connection_write_byteCache[97]=$'\x61'
bishbosh_connection_write_byteCache[98]=$'\x62'
bishbosh_connection_write_byteCache[99]=$'\x63'
bishbosh_connection_write_byteCache[100]=$'\x64'
bishbosh_connection_write_byteCache[101]=$'\x65'
bishbosh_connection_write_byteCache[102]=$'\x66'
bishbosh_connection_write_byteCache[103]=$'\x67'
bishbosh_connection_write_byteCache[104]=$'\x68'
bishbosh_connection_write_byteCache[105]=$'\x69'
bishbosh_connection_write_byteCache[106]=$'\x6A'
bishbosh_connection_write_byteCache[107]=$'\x6B'
bishbosh_connection_write_byteCache[108]=$'\x6C'
bishbosh_connection_write_byteCache[109]=$'\x6D'
bishbosh_connection_write_byteCache[110]=$'\x6E'
bishbosh_connection_write_byteCache[111]=$'\x6F'
bishbosh_connection_write_byteCache[112]=$'\x70'
bishbosh_connection_write_byteCache[113]=$'\x71'
bishbosh_connection_write_byteCache[114]=$'\x72'
bishbosh_connection_write_byteCache[115]=$'\x73'
bishbosh_connection_write_byteCache[116]=$'\x74'
bishbosh_connection_write_byteCache[117]=$'\x75'
bishbosh_connection_write_byteCache[118]=$'\x76'
bishbosh_connection_write_byteCache[119]=$'\x77'
bishbosh_connection_write_byteCache[120]=$'\x78'
bishbosh_connection_write_byteCache[121]=$'\x79'
bishbosh_connection_write_byteCache[122]=$'\x7A'
bishbosh_connection_write_byteCache[123]=$'\x7B'
bishbosh_connection_write_byteCache[124]=$'\x7C'
bishbosh_connection_write_byteCache[125]=$'\x7D'
bishbosh_connection_write_byteCache[126]=$'\x7E'
bishbosh_connection_write_byteCache[127]=$'\x7F'
bishbosh_connection_write_byteCache[128]=$'\x80'
bishbosh_connection_write_byteCache[129]=$'\x81'
bishbosh_connection_write_byteCache[130]=$'\x82'
bishbosh_connection_write_byteCache[131]=$'\x83'
bishbosh_connection_write_byteCache[132]=$'\x84'
bishbosh_connection_write_byteCache[133]=$'\x85'
bishbosh_connection_write_byteCache[134]=$'\x86'
bishbosh_connection_write_byteCache[135]=$'\x87'
bishbosh_connection_write_byteCache[136]=$'\x88'
bishbosh_connection_write_byteCache[137]=$'\x89'
bishbosh_connection_write_byteCache[138]=$'\x8A'
bishbosh_connection_write_byteCache[139]=$'\x8B'
bishbosh_connection_write_byteCache[140]=$'\x8C'
bishbosh_connection_write_byteCache[141]=$'\x8D'
bishbosh_connection_write_byteCache[142]=$'\x8E'
bishbosh_connection_write_byteCache[143]=$'\x8F'
bishbosh_connection_write_byteCache[144]=$'\x90'
bishbosh_connection_write_byteCache[145]=$'\x91'
bishbosh_connection_write_byteCache[146]=$'\x92'
bishbosh_connection_write_byteCache[147]=$'\x93'
bishbosh_connection_write_byteCache[148]=$'\x94'
bishbosh_connection_write_byteCache[149]=$'\x95'
bishbosh_connection_write_byteCache[150]=$'\x96'
bishbosh_connection_write_byteCache[151]=$'\x97'
bishbosh_connection_write_byteCache[152]=$'\x98'
bishbosh_connection_write_byteCache[153]=$'\x99'
bishbosh_connection_write_byteCache[154]=$'\x9A'
bishbosh_connection_write_byteCache[155]=$'\x9B'
bishbosh_connection_write_byteCache[156]=$'\x9C'
bishbosh_connection_write_byteCache[157]=$'\x9D'
bishbosh_connection_write_byteCache[158]=$'\x9E'
bishbosh_connection_write_byteCache[159]=$'\x9F'
bishbosh_connection_write_byteCache[160]=$'\xA0'
bishbosh_connection_write_byteCache[161]=$'\xA1'
bishbosh_connection_write_byteCache[162]=$'\xA2'
bishbosh_connection_write_byteCache[163]=$'\xA3'
bishbosh_connection_write_byteCache[164]=$'\xA4'
bishbosh_connection_write_byteCache[165]=$'\xA5'
bishbosh_connection_write_byteCache[166]=$'\xA6'
bishbosh_connection_write_byteCache[167]=$'\xA7'
bishbosh_connection_write_byteCache[168]=$'\xA8'
bishbosh_connection_write_byteCache[169]=$'\xA9'
bishbosh_connection_write_byteCache[170]=$'\xAA'
bishbosh_connection_write_byteCache[171]=$'\xAB'
bishbosh_connection_write_byteCache[172]=$'\xAC'
bishbosh_connection_write_byteCache[173]=$'\xAD'
bishbosh_connection_write_byteCache[174]=$'\xAE'
bishbosh_connection_write_byteCache[175]=$'\xAF'
bishbosh_connection_write_byteCache[176]=$'\xB0'
bishbosh_connection_write_byteCache[177]=$'\xB1'
bishbosh_connection_write_byteCache[178]=$'\xB2'
bishbosh_connection_write_byteCache[179]=$'\xB3'
bishbosh_connection_write_byteCache[180]=$'\xB4'
bishbosh_connection_write_byteCache[181]=$'\xB5'
bishbosh_connection_write_byteCache[182]=$'\xB6'
bishbosh_connection_write_byteCache[183]=$'\xB7'
bishbosh_connection_write_byteCache[184]=$'\xB8'
bishbosh_connection_write_byteCache[185]=$'\xB9'
bishbosh_connection_write_byteCache[186]=$'\xBA'
bishbosh_connection_write_byteCache[187]=$'\xBB'
bishbosh_connection_write_byteCache[188]=$'\xBC'
bishbosh_connection_write_byteCache[189]=$'\xBD'
bishbosh_connection_write_byteCache[190]=$'\xBE'
bishbosh_connection_write_byteCache[191]=$'\xBF'
bishbosh_connection_write_byteCache[192]=$'\xC0'
bishbosh_connection_write_byteCache[193]=$'\xC1'
bishbosh_connection_write_byteCache[194]=$'\xC2'
bishbosh_connection_write_byteCache[195]=$'\xC3'
bishbosh_connection_write_byteCache[196]=$'\xC4'
bishbosh_connection_write_byteCache[197]=$'\xC5'
bishbosh_connection_write_byteCache[198]=$'\xC6'
bishbosh_connection_write_byteCache[199]=$'\xC7'
bishbosh_connection_write_byteCache[200]=$'\xC8'
bishbosh_connection_write_byteCache[201]=$'\xC9'
bishbosh_connection_write_byteCache[202]=$'\xCA'
bishbosh_connection_write_byteCache[203]=$'\xCB'
bishbosh_connection_write_byteCache[204]=$'\xCC'
bishbosh_connection_write_byteCache[205]=$'\xCD'
bishbosh_connection_write_byteCache[206]=$'\xCE'
bishbosh_connection_write_byteCache[207]=$'\xCF'
bishbosh_connection_write_byteCache[208]=$'\xD0'
bishbosh_connection_write_byteCache[209]=$'\xD1'
bishbosh_connection_write_byteCache[210]=$'\xD2'
bishbosh_connection_write_byteCache[211]=$'\xD3'
bishbosh_connection_write_byteCache[212]=$'\xD4'
bishbosh_connection_write_byteCache[213]=$'\xD5'
bishbosh_connection_write_byteCache[214]=$'\xD6'
bishbosh_connection_write_byteCache[215]=$'\xD7'
bishbosh_connection_write_byteCache[216]=$'\xD8'
bishbosh_connection_write_byteCache[217]=$'\xD9'
bishbosh_connection_write_byteCache[218]=$'\xDA'
bishbosh_connection_write_byteCache[219]=$'\xDB'
bishbosh_connection_write_byteCache[220]=$'\xDC'
bishbosh_connection_write_byteCache[221]=$'\xDD'
bishbosh_connection_write_byteCache[222]=$'\xDE'
bishbosh_connection_write_byteCache[223]=$'\xDF'
bishbosh_connection_write_byteCache[224]=$'\xE0'
bishbosh_connection_write_byteCache[225]=$'\xE1'
bishbosh_connection_write_byteCache[226]=$'\xE2'
bishbosh_connection_write_byteCache[227]=$'\xE3'
bishbosh_connection_write_byteCache[228]=$'\xE4'
bishbosh_connection_write_byteCache[229]=$'\xE5'
bishbosh_connection_write_byteCache[230]=$'\xE6'
bishbosh_connection_write_byteCache[231]=$'\xE7'
bishbosh_connection_write_byteCache[232]=$'\xE8'
bishbosh_connection_write_byteCache[233]=$'\xE9'
bishbosh_connection_write_byteCache[234]=$'\xEA'
bishbosh_connection_write_byteCache[235]=$'\xEB'
bishbosh_connection_write_byteCache[236]=$'\xEC'
bishbosh_connection_write_byteCache[237]=$'\xED'
bishbosh_connection_write_byteCache[238]=$'\xEE'
bishbosh_connection_write_byteCache[239]=$'\xEF'
bishbosh_connection_write_byteCache[240]=$'\xF0'
bishbosh_connection_write_byteCache[241]=$'\xF1'
bishbosh_connection_write_byteCache[242]=$'\xF2'
bishbosh_connection_write_byteCache[243]=$'\xF3'
bishbosh_connection_write_byteCache[244]=$'\xF4'
bishbosh_connection_write_byteCache[245]=$'\xF5'
bishbosh_connection_write_byteCache[246]=$'\xF6'
bishbosh_connection_write_byteCache[247]=$'\xF7'
bishbosh_connection_write_byteCache[248]=$'\xF8'
bishbosh_connection_write_byteCache[249]=$'\xF9'
bishbosh_connection_write_byteCache[250]=$'\xFA'
bishbosh_connection_write_byteCache[251]=$'\xFB'
bishbosh_connection_write_byteCache[252]=$'\xFC'
bishbosh_connection_write_byteCache[253]=$'\xFD'
bishbosh_connection_write_byteCache[254]=$'\xFE'
bishbosh_connection_write_byteCache[255]=$'\xFF'

bishbosh_connection_write_byte()
{
	if [ $1 -eq 0 ]; then
		printf '\000'
	else
		echo -en "${bishbosh_connection_write_byteCache[$1]}"
	fi
}
