fixed iPXE mini image. merging into master.

This commit is contained in:
brent s. 2016-12-17 15:16:09 -05:00
parent a670ff8eb7
commit b96805f4fb
16 changed files with 176 additions and 886 deletions

1
.gitignore vendored
View File

@ -30,6 +30,7 @@
/extrasrc

# You should really generate local copies of these, as they're pretty private.
**/etc/dropbear
**/etc/openvpn
**/etc/systemd/system/multi-user.target.wants/openvpn@*
**/etc/ssh

View File

@ -128,23 +128,20 @@ def genUEFI(build, bdisk):
shell1_fetch.close()
print("{0}: [BUILD] Building UEFI support...".format(datetime.datetime.now()))
## But wait! That's not all! We need more binaries.
# http://blog.hansenpartnership.com/linux-foundation-secure-boot-system-released/
shim_url = 'http://blog.hansenpartnership.com/wp-uploads/2013/'
# Looks like these are in the "efitools" package now.
for f in ('PreLoader.efi', 'HashTool.efi'):
if f == 'PreLoader.efi':
fname = 'bootx64.efi'
else:
fname = f
if not os.path.isfile(prepdir + '/EFI/boot/' + fname):
url = shim_url + f
url_fetch = urlopen(url)
with open(prepdir + '/EFI/boot/' + fname, 'wb+') as dl:
dl.write(url_fetch.read())
url_fetch.close()
shutil.copy2('{0}/root.x86_64/usr/share/efitools/efi/{1}'.format(chrootdir, f),
'{0}/EFI/boot/{1}'.format(prepdir, fname))
# And we also need the systemd efi bootloader.
if os.path.isfile(prepdir + '/EFI/boot/loader.efi'):
os.remove(prepdir + '/EFI/boot/loader.efi')
shutil.copy2(chrootdir + '/root.x86_64/usr/lib/systemd/boot/efi/systemd-bootx64.efi', prepdir + '/EFI/boot/loader.efi')
shutil.copy2(chrootdir + '/root.x86_64/usr/lib/systemd/boot/efi/systemd-bootx64.efi',
prepdir + '/EFI/boot/loader.efi')
# And the accompanying configs for the systemd efi bootloader, too.
tpl_loader = jinja2.FileSystemLoader(templates_dir)
env = jinja2.Environment(loader = tpl_loader)
@ -194,7 +191,7 @@ def genUEFI(build, bdisk):
with open(efiboot_img, 'wb+') as f:
f.truncate(sizetotal)
DEVNULL = open(os.devnull, 'w')
cmd = ['/sbin/mkfs.vfat', '-F', '32', '-n', bdisk['name'] + '_EFI', efiboot_img]
cmd = ['/sbin/mkfs.fat', '-F', '32', '-n', bdisk['name'] + '_EFI', efiboot_img]
subprocess.call(cmd, stdout = DEVNULL, stderr = subprocess.STDOUT)
cmd = ['/bin/mount', efiboot_img, build['mountpt']]
subprocess.call(cmd)

View File

@ -118,7 +118,7 @@ def genISO(conf):
tpl_loader = jinja2.FileSystemLoader(templates_dir)
env = jinja2.Environment(loader = tpl_loader)
bootdir = '{0}/ipxe_mini'.format(dlpath)
efiboot_img = '{0}/EFI/BOOT/mini.efi'.format(bootdir)
efiboot_img = '{0}/EFI/{1}/efiboot.img'.format(bootdir, bdisk['name'])
innerefi64 = '{0}/src/bin-x86_64-efi/ipxe.efi'.format(ipxe_src)
efi = False
# this shouldn't be necessary... if it is, we can revisit this in the future. see "Inner dir" below.
@ -130,10 +130,23 @@ def genISO(conf):
print('{0}: [IPXE] UEFI support for Mini ISO...'.format(datetime.datetime.now()))
if os.path.isdir(bootdir):
shutil.rmtree(bootdir)
os.makedirs('{0}/EFI/BOOT'.format(bootdir), exist_ok = True) # EFI
# Inner dir (mini.efi file)
sizetotal = 65536 # 64K wiggle room. increase this if we add IA64.
os.makedirs(os.path.dirname(efiboot_img), exist_ok = True) # FAT32 embedded EFI dir
os.makedirs('{0}/EFI/boot'.format(bootdir), exist_ok = True) # EFI bootloader binary dir
# Inner dir (miniboot.img file)
#sizetotal = 2097152 # 2MB wiggle room. increase this if we add IA64.
sizetotal = 34603008 # 33MB wiggle room. increase this if we add IA64.
sizetotal += os.path.getsize(innerefi64)
sizefiles = ['HashTool', 'PreLoader']
for f in sizefiles:
sizetotal += os.path.getsize('{0}/root.x86_64/usr/share/efitools/efi/{1}.efi'.format(
chrootdir,
f))
# These won't be *quite* accurate since it's before the template substitution,
# but it'll be close enough.
for (path, dirs, files) in os.walk(templates_dir):
for file in files:
fname = os.path.join(path, file)
sizetotal += os.path.getsize(fname)
print("{0}: [IPXE] Creating EFI ESP image {1} ({2})...".format(
datetime.datetime.now(),
efiboot_img,
@ -143,22 +156,53 @@ def genISO(conf):
with open(efiboot_img, 'wb+') as f:
f.truncate(sizetotal)
DEVNULL = open(os.devnull, 'w')
cmd = ['/sbin/mkfs.vfat', '-F', '32', '-n', 'iPXE_EFI', efiboot_img]
cmd = ['/sbin/mkfs.fat', '-F', '32', '-n', 'iPXE_EFI', efiboot_img]
subprocess.call(cmd, stdout = DEVNULL, stderr = subprocess.STDOUT)
cmd = ['/bin/mount', efiboot_img, build['mountpt']]
cmd = ['/bin/mount', efiboot_img, mountpt]
subprocess.call(cmd)
os.makedirs(mountpt + '/EFI/BOOT')
shutil.copy2(innerefi64,'{0}/EFI/BOOT/BOOTX64.EFI'.format(mountpt))
os.makedirs(mountpt + '/EFI/boot', exist_ok = True) # "Inner" (EFI image)
os.makedirs('{0}/EFI/{1}'.format(mountpt, bdisk['name']), exist_ok = True) # "Inner" (EFI image)
os.makedirs('{0}/boot'.format(bootdir), exist_ok = True) # kernel(s)
os.makedirs('{0}/loader/entries'.format(bootdir), exist_ok = True) # EFI
for d in (mountpt, bootdir):
shutil.copy2(innerefi64,'{0}/EFI/boot/ipxe.efi'.format(d))
for f in ('PreLoader.efi', 'HashTool.efi'):
if f == 'PreLoader.efi':
fname = 'bootx64.efi'
else:
fname = f
if not os.path.isfile('{0}/EFI/boot/{1}'.format(mountpt, fname)):
shutil.copy2('{0}/root.x86_64/usr/share/efitools/efi/{1}'.format(chrootdir, f),
'{0}/EFI/boot/{1}'.format(mountpt, fname))
if not os.path.isfile('{0}/EFI/boot/{1}'.format(bootdir, f)):
shutil.copy2('{0}/root.x86_64/usr/share/efitools/efi/{1}'.format(chrootdir, f),
'{0}/EFI/boot/{1}'.format(bootdir, fname))
# And the systemd efi bootloader.
if not os.path.isfile('{0}/EFI/boot/loader.efi'.format(mountpt)):
shutil.copy2('{0}/root.x86_64/usr/lib/systemd/boot/efi/systemd-bootx64.efi'.format(chrootdir),
'{0}/EFI/boot/loader.efi'.format(mountpt))
if not os.path.isfile('{0}/EFI/boot/loader.efi'.format(bootdir)):
shutil.copy2('{0}/root.x86_64/usr/lib/systemd/boot/efi/systemd-bootx64.efi'.format(chrootdir),
'{0}/EFI/boot/loader.efi'.format(bootdir))
# And loader entries.
os.makedirs('{0}/loader/entries'.format(mountpt, exist_ok = True))
for t in ('loader', 'base'):
if t == 'base':
name = bdisk['uxname']
tplpath = '{0}/loader/entries'.format(mountpt)
else:
name = t
tplpath = '{0}/loader'.format(mountpt)
tpl = env.get_template('EFI/{0}.conf.j2'.format(t))
tpl_out = tpl.render(build = build, bdisk = bdisk)
with open('{0}/{1}.conf'.format(tplpath, name), "w+") as f:
f.write(tpl_out)
cmd = ['/bin/umount', mountpt]
subprocess.call(cmd)
# Outer dir
os.makedirs('{0}/boot'.format(bootdir), exist_ok = True) # kernel(s)
os.makedirs('{0}/loader/entries'.format(bootdir), exist_ok = True) # EFI
outerdir = True
os.makedirs('{0}/isolinux'.format(bootdir), exist_ok = True) # BIOS
# we reuse the preloader.efi from full ISO build
shutil.copy2('{0}/EFI/boot/bootx64.efi'.format(prepdir),
'{0}/EFI/BOOT/BOOTX64.EFI'.format(bootdir))
# and we create the loader entries
# and we create the loader entries (outer)
for t in ('loader','base'):
if t == 'base':
name = bdisk['uxname']
@ -167,7 +211,7 @@ def genISO(conf):
name = t
tplpath = '{0}/loader'.format(bootdir)
tpl = env.get_template('EFI/{0}.conf.j2'.format(t))
tpl_out = tpl.render(build = build, bdisk = bdisk)
tpl_out = tpl.render(build = build, bdisk = bdisk, outerdir = outerdir)
with open('{0}/{1}.conf'.format(tplpath, name), "w+") as f:
f.write(tpl_out)
if mini:
@ -198,7 +242,7 @@ def genISO(conf):
'-boot-info-table',
'-isohybrid-mbr', '{0}/root.{1}/usr/lib/syslinux/bios/isohdpfx.bin'.format(chrootdir, arch[0]),
'-eltorito-alt-boot',
'-e', 'EFI/BOOT/mini.efi',
'-e', 'EFI/{0}/{1}'.format(bdisk['name'], os.path.basename(efiboot_img)),
'-no-emul-boot',
'-isohybrid-gpt-basdat',
'-output', isopath,
@ -227,7 +271,8 @@ def genISO(conf):
'-output', isopath,
bootdir]
DEVNULL = open(os.devnull, 'w')
subprocess.call(cmd, stdout = DEVNULL, stderr = subprocess.STDOUT)
#subprocess.call(cmd, stdout = DEVNULL, stderr = subprocess.STDOUT)
subprocess.call(cmd)
# Get size of ISO
iso['name'] = ['Mini']
iso['Mini'] = {}

View File

@ -1,832 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>

<office:document xmlns:office="urn:oasis:names:tc:opendocument:xmlns:office:1.0" xmlns:style="urn:oasis:names:tc:opendocument:xmlns:style:1.0" xmlns:text="urn:oasis:names:tc:opendocument:xmlns:text:1.0" xmlns:table="urn:oasis:names:tc:opendocument:xmlns:table:1.0" xmlns:draw="urn:oasis:names:tc:opendocument:xmlns:drawing:1.0" xmlns:fo="urn:oasis:names:tc:opendocument:xmlns:xsl-fo-compatible:1.0" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:meta="urn:oasis:names:tc:opendocument:xmlns:meta:1.0" xmlns:number="urn:oasis:names:tc:opendocument:xmlns:datastyle:1.0" xmlns:svg="urn:oasis:names:tc:opendocument:xmlns:svg-compatible:1.0" xmlns:chart="urn:oasis:names:tc:opendocument:xmlns:chart:1.0" xmlns:dr3d="urn:oasis:names:tc:opendocument:xmlns:dr3d:1.0" xmlns:math="http://www.w3.org/1998/Math/MathML" xmlns:form="urn:oasis:names:tc:opendocument:xmlns:form:1.0" xmlns:script="urn:oasis:names:tc:opendocument:xmlns:script:1.0" xmlns:config="urn:oasis:names:tc:opendocument:xmlns:config:1.0" xmlns:ooo="http://openoffice.org/2004/office" xmlns:ooow="http://openoffice.org/2004/writer" xmlns:oooc="http://openoffice.org/2004/calc" xmlns:dom="http://www.w3.org/2001/xml-events" xmlns:xforms="http://www.w3.org/2002/xforms" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:rpt="http://openoffice.org/2005/report" xmlns:of="urn:oasis:names:tc:opendocument:xmlns:of:1.2" xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:grddl="http://www.w3.org/2003/g/data-view#" xmlns:officeooo="http://openoffice.org/2009/office" xmlns:tableooo="http://openoffice.org/2009/table" xmlns:drawooo="http://openoffice.org/2010/draw" xmlns:calcext="urn:org:documentfoundation:names:experimental:calc:xmlns:calcext:1.0" xmlns:loext="urn:org:documentfoundation:names:experimental:office:xmlns:loext:1.0" xmlns:field="urn:openoffice:names:experimental:ooo-ms-interop:xmlns:field:1.0" xmlns:formx="urn:openoffice:names:experimental:ooxml-odf-interop:xmlns:form:1.0" xmlns:css3t="http://www.w3.org/TR/css3-text/" office:version="1.2" office:mimetype="application/vnd.oasis.opendocument.text">
<office:meta><meta:creation-date>2016-12-01T11:27:37.665510821</meta:creation-date><dc:date>2016-12-04T05:22:38.498441678</dc:date><meta:editing-duration>PT12H18M12S</meta:editing-duration><meta:editing-cycles>33</meta:editing-cycles><meta:generator>LibreOffice/5.2.3.3$Linux_X86_64 LibreOffice_project/20m0$Build-3</meta:generator><meta:document-statistic meta:character-count="4130" meta:image-count="0" meta:non-whitespace-character-count="3475" meta:object-count="0" meta:page-count="5" meta:paragraph-count="49" meta:table-count="0" meta:word-count="695"/></office:meta>
<office:settings>
<config:config-item-set config:name="ooo:view-settings">
<config:config-item config:name="ViewAreaTop" config:type="long">93054</config:config-item>
<config:config-item config:name="ViewAreaLeft" config:type="long">0</config:config-item>
<config:config-item config:name="ViewAreaWidth" config:type="long">40748</config:config-item>
<config:config-item config:name="ViewAreaHeight" config:type="long">21751</config:config-item>
<config:config-item config:name="ShowRedlineChanges" config:type="boolean">true</config:config-item>
<config:config-item config:name="InBrowseMode" config:type="boolean">false</config:config-item>
<config:config-item-map-indexed config:name="Views">
<config:config-item-map-entry>
<config:config-item config:name="ViewId" config:type="string">view2</config:config-item>
<config:config-item config:name="ViewLeft" config:type="long">11578</config:config-item>
<config:config-item config:name="ViewTop" config:type="long">3494</config:config-item>
<config:config-item config:name="VisibleLeft" config:type="long">0</config:config-item>
<config:config-item config:name="VisibleTop" config:type="long">93054</config:config-item>
<config:config-item config:name="VisibleRight" config:type="long">40746</config:config-item>
<config:config-item config:name="VisibleBottom" config:type="long">114803</config:config-item>
<config:config-item config:name="ZoomType" config:type="short">0</config:config-item>
<config:config-item config:name="ViewLayoutColumns" config:type="short">1</config:config-item>
<config:config-item config:name="ViewLayoutBookMode" config:type="boolean">false</config:config-item>
<config:config-item config:name="ZoomFactor" config:type="short">100</config:config-item>
<config:config-item config:name="IsSelectedFrame" config:type="boolean">false</config:config-item>
</config:config-item-map-entry>
</config:config-item-map-indexed>
</config:config-item-set>
<config:config-item-set config:name="ooo:configuration-settings">
<config:config-item config:name="PrintProspect" config:type="boolean">false</config:config-item>
<config:config-item config:name="PrintLeftPages" config:type="boolean">true</config:config-item>
<config:config-item config:name="PrintPageBackground" config:type="boolean">true</config:config-item>
<config:config-item config:name="PrintControls" config:type="boolean">true</config:config-item>
<config:config-item config:name="PrintAnnotationMode" config:type="short">0</config:config-item>
<config:config-item config:name="PrintGraphics" config:type="boolean">true</config:config-item>
<config:config-item config:name="PrintRightPages" config:type="boolean">true</config:config-item>
<config:config-item config:name="PrintFaxName" config:type="string"/>
<config:config-item config:name="PrintPaperFromSetup" config:type="boolean">false</config:config-item>
<config:config-item config:name="PrintTextPlaceholder" config:type="boolean">false</config:config-item>
<config:config-item config:name="ApplyParagraphMarkFormatToNumbering" config:type="boolean">false</config:config-item>
<config:config-item config:name="PrintReversed" config:type="boolean">false</config:config-item>
<config:config-item config:name="TabOverMargin" config:type="boolean">false</config:config-item>
<config:config-item config:name="EmbedFonts" config:type="boolean">false</config:config-item>
<config:config-item config:name="SurroundTextWrapSmall" config:type="boolean">false</config:config-item>
<config:config-item config:name="BackgroundParaOverDrawings" config:type="boolean">false</config:config-item>
<config:config-item config:name="ClippedPictures" config:type="boolean">false</config:config-item>
<config:config-item config:name="FloattableNomargins" config:type="boolean">false</config:config-item>
<config:config-item config:name="UnbreakableNumberings" config:type="boolean">false</config:config-item>
<config:config-item config:name="EmbedSystemFonts" config:type="boolean">false</config:config-item>
<config:config-item config:name="TabOverflow" config:type="boolean">true</config:config-item>
<config:config-item config:name="PrintTables" config:type="boolean">true</config:config-item>
<config:config-item config:name="PrintSingleJobs" config:type="boolean">false</config:config-item>
<config:config-item config:name="SmallCapsPercentage66" config:type="boolean">false</config:config-item>
<config:config-item config:name="CollapseEmptyCellPara" config:type="boolean">true</config:config-item>
<config:config-item config:name="TreatSingleColumnBreakAsPageBreak" config:type="boolean">false</config:config-item>
<config:config-item config:name="MathBaselineAlignment" config:type="boolean">true</config:config-item>
<config:config-item config:name="AddFrameOffsets" config:type="boolean">false</config:config-item>
<config:config-item config:name="IsLabelDocument" config:type="boolean">false</config:config-item>
<config:config-item config:name="PrinterName" config:type="string"/>
<config:config-item config:name="OutlineLevelYieldsNumbering" config:type="boolean">false</config:config-item>
<config:config-item config:name="IgnoreFirstLineIndentInNumbering" config:type="boolean">false</config:config-item>
<config:config-item config:name="UpdateFromTemplate" config:type="boolean">true</config:config-item>
<config:config-item config:name="PrintBlackFonts" config:type="boolean">false</config:config-item>
<config:config-item config:name="TableRowKeep" config:type="boolean">false</config:config-item>
<config:config-item config:name="EmbeddedDatabaseName" config:type="string"/>
<config:config-item config:name="IgnoreTabsAndBlanksForLineCalculation" config:type="boolean">false</config:config-item>
<config:config-item config:name="UseOldPrinterMetrics" config:type="boolean">false</config:config-item>
<config:config-item config:name="InvertBorderSpacing" config:type="boolean">false</config:config-item>
<config:config-item config:name="SaveGlobalDocumentLinks" config:type="boolean">false</config:config-item>
<config:config-item config:name="TabsRelativeToIndent" config:type="boolean">true</config:config-item>
<config:config-item config:name="Rsid" config:type="int">1037822</config:config-item>
<config:config-item config:name="PrintProspectRTL" config:type="boolean">false</config:config-item>
<config:config-item config:name="PrintEmptyPages" config:type="boolean">false</config:config-item>
<config:config-item config:name="ApplyUserData" config:type="boolean">true</config:config-item>
<config:config-item config:name="PrintHiddenText" config:type="boolean">false</config:config-item>
<config:config-item config:name="AddParaTableSpacingAtStart" config:type="boolean">true</config:config-item>
<config:config-item config:name="FieldAutoUpdate" config:type="boolean">true</config:config-item>
<config:config-item config:name="UseOldNumbering" config:type="boolean">false</config:config-item>
<config:config-item config:name="AddParaTableSpacing" config:type="boolean">true</config:config-item>
<config:config-item config:name="CharacterCompressionType" config:type="short">0</config:config-item>
<config:config-item config:name="SaveVersionOnClose" config:type="boolean">false</config:config-item>
<config:config-item config:name="ChartAutoUpdate" config:type="boolean">true</config:config-item>
<config:config-item config:name="PrinterIndependentLayout" config:type="string">high-resolution</config:config-item>
<config:config-item config:name="IsKernAsianPunctuation" config:type="boolean">false</config:config-item>
<config:config-item config:name="UseFormerObjectPositioning" config:type="boolean">false</config:config-item>
<config:config-item config:name="AddVerticalFrameOffsets" config:type="boolean">false</config:config-item>
<config:config-item config:name="SubtractFlysAnchoredAtFlys" config:type="boolean">false</config:config-item>
<config:config-item config:name="AddParaSpacingToTableCells" config:type="boolean">true</config:config-item>
<config:config-item config:name="AddExternalLeading" config:type="boolean">true</config:config-item>
<config:config-item config:name="CurrentDatabaseDataSource" config:type="string"/>
<config:config-item config:name="AllowPrintJobCancel" config:type="boolean">true</config:config-item>
<config:config-item config:name="InBrowseMode" config:type="boolean">false</config:config-item>
<config:config-item config:name="ProtectForm" config:type="boolean">false</config:config-item>
<config:config-item config:name="UseFormerLineSpacing" config:type="boolean">false</config:config-item>
<config:config-item config:name="PrintDrawings" config:type="boolean">true</config:config-item>
<config:config-item config:name="UseFormerTextWrapping" config:type="boolean">false</config:config-item>
<config:config-item config:name="UnxForceZeroExtLeading" config:type="boolean">false</config:config-item>
<config:config-item config:name="TabAtLeftIndentForParagraphsInList" config:type="boolean">false</config:config-item>
<config:config-item config:name="RedlineProtectionKey" config:type="base64Binary"/>
<config:config-item config:name="PropLineSpacingShrinksFirstLine" config:type="boolean">true</config:config-item>
<config:config-item config:name="ConsiderTextWrapOnObjPos" config:type="boolean">false</config:config-item>
<config:config-item config:name="RsidRoot" config:type="int">38510</config:config-item>
<config:config-item config:name="StylesNoDefault" config:type="boolean">false</config:config-item>
<config:config-item config:name="LinkUpdateMode" config:type="short">1</config:config-item>
<config:config-item config:name="AlignTabStopPosition" config:type="boolean">true</config:config-item>
<config:config-item config:name="DoNotJustifyLinesWithManualBreak" config:type="boolean">false</config:config-item>
<config:config-item config:name="DoNotResetParaAttrsForNumFont" config:type="boolean">false</config:config-item>
<config:config-item config:name="CurrentDatabaseCommandType" config:type="int">0</config:config-item>
<config:config-item config:name="LoadReadonly" config:type="boolean">false</config:config-item>
<config:config-item config:name="DoNotCaptureDrawObjsOnPage" config:type="boolean">false</config:config-item>
<config:config-item config:name="CurrentDatabaseCommand" config:type="string"/>
<config:config-item config:name="PrinterSetup" config:type="base64Binary"/>
<config:config-item config:name="ClipAsCharacterAnchoredWriterFlyFrames" config:type="boolean">false</config:config-item>
</config:config-item-set>
</office:settings>
<office:scripts>
<office:script script:language="ooo:Basic">
<ooo:libraries xmlns:ooo="http://openoffice.org/2004/office" xmlns:xlink="http://www.w3.org/1999/xlink">
<ooo:library-embedded ooo:name="Standard"/>
</ooo:libraries>
</office:script>
</office:scripts>
<office:font-face-decls>
<style:font-face style:name="OpenSymbol" svg:font-family="OpenSymbol" style:font-charset="x-symbol"/>
<style:font-face style:name="FreeSans1" svg:font-family="FreeSans" style:font-family-generic="swiss"/>
<style:font-face style:name="DejaVu Serif" svg:font-family="&apos;DejaVu Serif&apos;" style:font-family-generic="roman" style:font-pitch="variable"/>
<style:font-face style:name="DejaVu Sans" svg:font-family="&apos;DejaVu Sans&apos;" style:font-family-generic="swiss" style:font-pitch="variable"/>
<style:font-face style:name="DejaVu Sans1" svg:font-family="&apos;DejaVu Sans&apos;" style:font-family-generic="system" style:font-pitch="variable"/>
<style:font-face style:name="FreeSans" svg:font-family="FreeSans" style:font-family-generic="system" style:font-pitch="variable"/>
</office:font-face-decls>
<office:styles>
<style:default-style style:family="graphic">
<style:graphic-properties svg:stroke-color="#3465a4" draw:fill-color="#729fcf" fo:wrap-option="no-wrap" draw:shadow-offset-x="0.1181in" draw:shadow-offset-y="0.1181in" draw:start-line-spacing-horizontal="0.1114in" draw:start-line-spacing-vertical="0.1114in" draw:end-line-spacing-horizontal="0.1114in" draw:end-line-spacing-vertical="0.1114in" style:flow-with-text="false"/>
<style:paragraph-properties style:text-autospace="ideograph-alpha" style:line-break="strict" style:writing-mode="lr-tb" style:font-independent-line-spacing="false">
<style:tab-stops/>
</style:paragraph-properties>
<style:text-properties style:use-window-font-color="true" style:font-name="DejaVu Serif" fo:font-size="12pt" fo:language="en" fo:country="US" style:letter-kerning="true" style:font-name-asian="DejaVu Sans1" style:font-size-asian="10.5pt" style:language-asian="zh" style:country-asian="CN" style:font-name-complex="FreeSans" style:font-size-complex="12pt" style:language-complex="hi" style:country-complex="IN"/>
</style:default-style>
<style:default-style style:family="paragraph">
<style:paragraph-properties fo:orphans="2" fo:widows="2" fo:hyphenation-ladder-count="no-limit" style:text-autospace="ideograph-alpha" style:punctuation-wrap="hanging" style:line-break="strict" style:tab-stop-distance="0.4925in" style:writing-mode="page"/>
<style:text-properties style:use-window-font-color="true" style:font-name="DejaVu Serif" fo:font-size="12pt" fo:language="en" fo:country="US" style:letter-kerning="true" style:font-name-asian="DejaVu Sans1" style:font-size-asian="10.5pt" style:language-asian="zh" style:country-asian="CN" style:font-name-complex="FreeSans" style:font-size-complex="12pt" style:language-complex="hi" style:country-complex="IN" fo:hyphenate="false" fo:hyphenation-remain-char-count="2" fo:hyphenation-push-char-count="2"/>
</style:default-style>
<style:default-style style:family="table">
<style:table-properties table:border-model="collapsing"/>
</style:default-style>
<style:default-style style:family="table-row">
<style:table-row-properties fo:keep-together="auto"/>
</style:default-style>
<style:style style:name="Standard" style:family="paragraph" style:class="text"/>
<style:style style:name="Heading" style:family="paragraph" style:parent-style-name="Standard" style:next-style-name="Text_20_body" style:class="text">
<style:paragraph-properties fo:margin-top="0.1665in" fo:margin-bottom="0.0835in" loext:contextual-spacing="false" fo:keep-with-next="always"/>
<style:text-properties style:font-name="DejaVu Sans" fo:font-family="&apos;DejaVu Sans&apos;" style:font-family-generic="swiss" style:font-pitch="variable" fo:font-size="14pt" style:font-name-asian="DejaVu Sans1" style:font-family-asian="&apos;DejaVu Sans&apos;" style:font-family-generic-asian="system" style:font-pitch-asian="variable" style:font-size-asian="14pt" style:font-name-complex="FreeSans" style:font-family-complex="FreeSans" style:font-family-generic-complex="system" style:font-pitch-complex="variable" style:font-size-complex="14pt"/>
</style:style>
<style:style style:name="Text_20_body" style:display-name="Text body" style:family="paragraph" style:parent-style-name="Standard" style:class="text">
<style:paragraph-properties fo:margin-top="0in" fo:margin-bottom="0.0972in" loext:contextual-spacing="false" fo:line-height="120%"/>
</style:style>
<style:style style:name="List" style:family="paragraph" style:parent-style-name="Text_20_body" style:class="list">
<style:text-properties style:font-size-asian="12pt" style:font-name-complex="FreeSans1" style:font-family-complex="FreeSans" style:font-family-generic-complex="swiss"/>
</style:style>
<style:style style:name="Caption" style:family="paragraph" style:parent-style-name="Standard" style:class="extra">
<style:paragraph-properties fo:margin-top="0.0835in" fo:margin-bottom="0.0835in" loext:contextual-spacing="false" text:number-lines="false" text:line-number="0"/>
<style:text-properties fo:font-size="12pt" fo:font-style="italic" style:font-size-asian="12pt" style:font-style-asian="italic" style:font-name-complex="FreeSans1" style:font-family-complex="FreeSans" style:font-family-generic-complex="swiss" style:font-size-complex="12pt" style:font-style-complex="italic"/>
</style:style>
<style:style style:name="Index" style:family="paragraph" style:parent-style-name="Standard" style:class="index">
<style:paragraph-properties text:number-lines="false" text:line-number="0"/>
<style:text-properties style:font-size-asian="12pt" style:font-name-complex="FreeSans1" style:font-family-complex="FreeSans" style:font-family-generic-complex="swiss"/>
</style:style>
<style:style style:name="Frame_20_contents" style:display-name="Frame contents" style:family="paragraph" style:parent-style-name="Standard" style:class="extra"/>
<style:style style:name="Title" style:family="paragraph" style:parent-style-name="Heading" style:next-style-name="Text_20_body" style:class="chapter">
<style:paragraph-properties fo:text-align="center" style:justify-single-word="false"/>
<style:text-properties fo:font-size="28pt" fo:font-weight="bold" style:font-size-asian="28pt" style:font-weight-asian="bold" style:font-size-complex="28pt" style:font-weight-complex="bold"/>
</style:style>
<style:style style:name="Subtitle" style:family="paragraph" style:parent-style-name="Heading" style:next-style-name="Text_20_body" style:class="chapter">
<style:paragraph-properties fo:margin-top="0.0417in" fo:margin-bottom="0.0835in" loext:contextual-spacing="false" fo:text-align="center" style:justify-single-word="false"/>
<style:text-properties fo:font-size="18pt" style:font-size-asian="18pt" style:font-size-complex="18pt"/>
</style:style>
<style:style style:name="Header" style:family="paragraph" style:parent-style-name="Standard" style:class="extra">
<style:paragraph-properties text:number-lines="false" text:line-number="0">
<style:tab-stops>
<style:tab-stop style:position="3.4626in" style:type="center"/>
<style:tab-stop style:position="6.9252in" style:type="right"/>
</style:tab-stops>
</style:paragraph-properties>
</style:style>
<style:style style:name="Footer" style:family="paragraph" style:parent-style-name="Standard" style:class="extra">
<style:paragraph-properties text:number-lines="false" text:line-number="0">
<style:tab-stops>
<style:tab-stop style:position="3.4626in" style:type="center"/>
<style:tab-stop style:position="6.9252in" style:type="right"/>
</style:tab-stops>
</style:paragraph-properties>
</style:style>
<style:style style:name="Contents_20_Heading" style:display-name="Contents Heading" style:family="paragraph" style:parent-style-name="Heading" style:class="index">
<style:paragraph-properties fo:margin-left="0in" fo:margin-right="0in" fo:text-indent="0in" style:auto-text-indent="false" text:number-lines="false" text:line-number="0"/>
<style:text-properties fo:font-size="16pt" fo:font-weight="bold" style:font-size-asian="16pt" style:font-weight-asian="bold" style:font-size-complex="16pt" style:font-weight-complex="bold"/>
</style:style>
<style:style style:name="Heading_20_2" style:display-name="Heading 2" style:family="paragraph" style:parent-style-name="Heading" style:next-style-name="Text_20_body" style:default-outline-level="2" style:class="text">
<style:paragraph-properties fo:margin-top="0.139in" fo:margin-bottom="0.0835in" loext:contextual-spacing="false"/>
<style:text-properties fo:font-size="115%" fo:font-weight="bold" style:font-size-asian="115%" style:font-weight-asian="bold" style:font-size-complex="115%" style:font-weight-complex="bold"/>
</style:style>
<style:style style:name="Heading_20_1" style:display-name="Heading 1" style:family="paragraph" style:parent-style-name="Heading" style:next-style-name="Text_20_body" style:default-outline-level="1" style:class="text">
<style:paragraph-properties fo:margin-top="0.1665in" fo:margin-bottom="0.0835in" loext:contextual-spacing="false"/>
<style:text-properties fo:font-size="130%" fo:font-weight="bold" style:font-size-asian="130%" style:font-weight-asian="bold" style:font-size-complex="130%" style:font-weight-complex="bold"/>
</style:style>
<style:style style:name="Contents_20_1" style:display-name="Contents 1" style:family="paragraph" style:parent-style-name="Index" style:class="index">
<style:paragraph-properties fo:margin-left="0in" fo:margin-right="0in" fo:text-indent="0in" style:auto-text-indent="false">
<style:tab-stops>
<style:tab-stop style:position="6.9252in" style:type="right" style:leader-style="dotted" style:leader-text="."/>
</style:tab-stops>
</style:paragraph-properties>
</style:style>
<style:style style:name="Heading_20_3" style:display-name="Heading 3" style:family="paragraph" style:parent-style-name="Heading" style:next-style-name="Text_20_body" style:default-outline-level="3" style:class="text">
<style:paragraph-properties fo:margin-top="0.0972in" fo:margin-bottom="0.0835in" loext:contextual-spacing="false"/>
<style:text-properties fo:font-size="101%" fo:font-weight="bold" style:font-size-asian="101%" style:font-weight-asian="bold" style:font-size-complex="101%" style:font-weight-complex="bold"/>
</style:style>
<style:style style:name="Contents_20_2" style:display-name="Contents 2" style:family="paragraph" style:parent-style-name="Index" style:class="index">
<style:paragraph-properties fo:margin-left="0.1965in" fo:margin-right="0in" fo:text-indent="0in" style:auto-text-indent="false">
<style:tab-stops>
<style:tab-stop style:position="6.7283in" style:type="right" style:leader-style="dotted" style:leader-text="."/>
</style:tab-stops>
</style:paragraph-properties>
</style:style>
<style:style style:name="Heading_20_8" style:display-name="Heading 8" style:family="paragraph" style:parent-style-name="Heading" style:next-style-name="Text_20_body" style:class="text">
<style:paragraph-properties fo:margin-top="0.0417in" fo:margin-bottom="0.0417in" loext:contextual-spacing="false"/>
<style:text-properties fo:font-size="80%" fo:font-style="italic" fo:font-weight="bold" style:font-size-asian="80%" style:font-style-asian="italic" style:font-weight-asian="bold" style:font-size-complex="80%" style:font-style-complex="italic" style:font-weight-complex="bold"/>
</style:style>
<style:style style:name="Contents_20_3" style:display-name="Contents 3" style:family="paragraph" style:parent-style-name="Index" style:class="index">
<style:paragraph-properties fo:margin-left="0.3929in" fo:margin-right="0in" fo:text-indent="0in" style:auto-text-indent="false">
<style:tab-stops>
<style:tab-stop style:position="6.5319in" style:type="right" style:leader-style="dotted" style:leader-text="."/>
</style:tab-stops>
</style:paragraph-properties>
</style:style>
<style:style style:name="First_20_line_20_indent" style:display-name="First line indent" style:family="paragraph" style:parent-style-name="Text_20_body" style:class="text">
<style:paragraph-properties fo:margin-left="0in" fo:margin-right="0in" fo:text-indent="0.1965in" style:auto-text-indent="false"/>
</style:style>
<style:style style:name="Horizontal_20_Line" style:display-name="Horizontal Line" style:family="paragraph" style:parent-style-name="Standard" style:next-style-name="Text_20_body" style:class="html">
<style:paragraph-properties fo:margin-top="0in" fo:margin-bottom="0.1965in" loext:contextual-spacing="false" style:border-line-width-bottom="0in 0.0016in 0.0008in" fo:padding="0in" fo:border-left="none" fo:border-right="none" fo:border-top="none" fo:border-bottom="0.14pt double #808080" text:number-lines="false" text:line-number="0" style:join-border="false"/>
<style:text-properties fo:font-size="6pt" style:font-size-asian="6pt" style:font-size-complex="6pt"/>
</style:style>
<style:style style:name="Footnote" style:family="paragraph" style:parent-style-name="Standard" style:class="extra">
<style:paragraph-properties fo:margin-left="0.2354in" fo:margin-right="0in" fo:text-indent="-0.2354in" style:auto-text-indent="false" text:number-lines="false" text:line-number="0"/>
<style:text-properties fo:font-size="10pt" style:font-size-asian="10pt" style:font-size-complex="10pt"/>
</style:style>
<style:style style:name="Internet_20_link" style:display-name="Internet link" style:family="text">
<style:text-properties fo:color="#000000" fo:language="zxx" fo:country="none" style:text-underline-style="solid" style:text-underline-width="auto" style:text-underline-color="font-color" fo:font-weight="bold" style:font-size-asian="10.5pt" style:language-asian="zxx" style:country-asian="none" style:language-complex="zxx" style:country-complex="none"/>
</style:style>
<style:style style:name="Index_20_Link" style:display-name="Index Link" style:family="text"/>
<style:style style:name="Footnote_20_Symbol" style:display-name="Footnote Symbol" style:family="text"/>
<style:style style:name="Footnote_20_anchor" style:display-name="Footnote anchor" style:family="text">
<style:text-properties style:text-position="super 58%"/>
</style:style>
<style:style style:name="Bullet_20_Symbols" style:display-name="Bullet Symbols" style:family="text">
<style:text-properties style:font-name="OpenSymbol" fo:font-family="OpenSymbol" style:font-charset="x-symbol" style:font-name-asian="OpenSymbol" style:font-family-asian="OpenSymbol" style:font-charset-asian="x-symbol" style:font-name-complex="OpenSymbol" style:font-family-complex="OpenSymbol" style:font-charset-complex="x-symbol"/>
</style:style>
<style:style style:name="Frame" style:family="graphic">
<style:graphic-properties text:anchor-type="paragraph" svg:x="0in" svg:y="0in" fo:margin-left="0.0791in" fo:margin-right="0.0791in" fo:margin-top="0.0791in" fo:margin-bottom="0.0791in" style:wrap="parallel" style:number-wrapped-paragraphs="no-limit" style:wrap-contour="false" style:vertical-pos="top" style:vertical-rel="paragraph-content" style:horizontal-pos="center" style:horizontal-rel="paragraph-content" fo:padding="0.0591in" fo:border="0.06pt solid #000000"/>
</style:style>
<text:outline-style style:name="Outline">
<text:outline-level-style text:level="1" style:num-prefix="Chapter " style:num-suffix=": " style:num-format="I">
<style:list-level-properties text:list-level-position-and-space-mode="label-alignment">
<style:list-level-label-alignment text:label-followed-by="listtab"/>
</style:list-level-properties>
</text:outline-level-style>
<text:outline-level-style text:level="2" style:num-prefix=" Section " style:num-suffix=": " style:num-format="1" text:display-levels="2">
<style:list-level-properties text:list-level-position-and-space-mode="label-alignment">
<style:list-level-label-alignment text:label-followed-by="listtab"/>
</style:list-level-properties>
</text:outline-level-style>
<text:outline-level-style text:level="3" style:num-suffix=": " style:num-format="i" text:display-levels="3">
<style:list-level-properties text:list-level-position-and-space-mode="label-alignment">
<style:list-level-label-alignment text:label-followed-by="listtab"/>
</style:list-level-properties>
</text:outline-level-style>
<text:outline-level-style text:level="4" style:num-format="">
<style:list-level-properties text:list-level-position-and-space-mode="label-alignment">
<style:list-level-label-alignment text:label-followed-by="listtab"/>
</style:list-level-properties>
</text:outline-level-style>
<text:outline-level-style text:level="5" style:num-format="">
<style:list-level-properties text:list-level-position-and-space-mode="label-alignment">
<style:list-level-label-alignment text:label-followed-by="listtab"/>
</style:list-level-properties>
</text:outline-level-style>
<text:outline-level-style text:level="6" style:num-format="">
<style:list-level-properties text:list-level-position-and-space-mode="label-alignment">
<style:list-level-label-alignment text:label-followed-by="listtab"/>
</style:list-level-properties>
</text:outline-level-style>
<text:outline-level-style text:level="7" style:num-format="">
<style:list-level-properties text:list-level-position-and-space-mode="label-alignment">
<style:list-level-label-alignment text:label-followed-by="listtab"/>
</style:list-level-properties>
</text:outline-level-style>
<text:outline-level-style text:level="8" style:num-format="">
<style:list-level-properties text:list-level-position-and-space-mode="label-alignment">
<style:list-level-label-alignment text:label-followed-by="listtab"/>
</style:list-level-properties>
</text:outline-level-style>
<text:outline-level-style text:level="9" style:num-format="">
<style:list-level-properties text:list-level-position-and-space-mode="label-alignment">
<style:list-level-label-alignment text:label-followed-by="listtab"/>
</style:list-level-properties>
</text:outline-level-style>
<text:outline-level-style text:level="10" style:num-format="">
<style:list-level-properties text:list-level-position-and-space-mode="label-alignment">
<style:list-level-label-alignment text:label-followed-by="listtab"/>
</style:list-level-properties>
</text:outline-level-style>
</text:outline-style>
<text:notes-configuration text:note-class="footnote" text:citation-style-name="Footnote_20_Symbol" text:citation-body-style-name="Footnote_20_anchor" style:num-format="1" text:start-value="0" text:footnotes-position="page" text:start-numbering-at="document"/>
<text:notes-configuration text:note-class="endnote" style:num-format="i" text:start-value="0"/>
<text:linenumbering-configuration text:number-lines="false" text:offset="0.1965in" style:num-format="1" text:number-position="left" text:increment="5"/>
</office:styles>
<office:automatic-styles>
<style:style style:name="P1" style:family="paragraph" style:parent-style-name="Footer">
<style:text-properties officeooo:rsid="0001be38" officeooo:paragraph-rsid="0001be38"/>
</style:style>
<style:style style:name="P2" style:family="paragraph" style:parent-style-name="Header">
<style:paragraph-properties fo:text-align="end" style:justify-single-word="false"/>
</style:style>
<style:style style:name="P3" style:family="paragraph" style:parent-style-name="Footer">
<style:text-properties officeooo:rsid="0001be38" officeooo:paragraph-rsid="0001be38"/>
</style:style>
<style:style style:name="P4" style:family="paragraph" style:parent-style-name="Header">
<style:paragraph-properties fo:text-align="end" style:justify-single-word="false"/>
</style:style>
<style:style style:name="P5" style:family="paragraph" style:parent-style-name="Text_20_body">
<style:paragraph-properties fo:text-align="center" style:justify-single-word="false"/>
<style:text-properties officeooo:rsid="000165f1" officeooo:paragraph-rsid="000165f1"/>
</style:style>
<style:style style:name="P6" style:family="paragraph" style:parent-style-name="Text_20_body">
<style:text-properties officeooo:rsid="0002592b" officeooo:paragraph-rsid="0002592b"/>
</style:style>
<style:style style:name="P7" style:family="paragraph" style:parent-style-name="Text_20_body">
<style:text-properties officeooo:rsid="0002592b" officeooo:paragraph-rsid="00074189"/>
</style:style>
<style:style style:name="P8" style:family="paragraph" style:parent-style-name="Text_20_body">
<style:text-properties officeooo:paragraph-rsid="0002592b"/>
</style:style>
<style:style style:name="P9" style:family="paragraph" style:parent-style-name="Text_20_body">
<style:text-properties officeooo:paragraph-rsid="0003d8d6"/>
</style:style>
<style:style style:name="P10" style:family="paragraph" style:parent-style-name="Text_20_body">
<style:text-properties officeooo:paragraph-rsid="0004d562"/>
</style:style>
<style:style style:name="P11" style:family="paragraph" style:parent-style-name="Text_20_body">
<style:text-properties officeooo:paragraph-rsid="000d91dc"/>
</style:style>
<style:style style:name="P12" style:family="paragraph" style:parent-style-name="Text_20_body">
<style:text-properties officeooo:rsid="000d91dc" officeooo:paragraph-rsid="000d91dc"/>
</style:style>
<style:style style:name="P13" style:family="paragraph" style:parent-style-name="Text_20_body">
<style:text-properties officeooo:rsid="000e7666" officeooo:paragraph-rsid="000e7666"/>
</style:style>
<style:style style:name="P14" style:family="paragraph" style:parent-style-name="Title" style:master-page-name="">
<loext:graphic-properties draw:fill="none"/>
<style:paragraph-properties fo:margin-left="0in" fo:margin-right="0in" fo:margin-top="0.1665in" fo:margin-bottom="0.0835in" loext:contextual-spacing="false" fo:text-align="center" style:justify-single-word="false" fo:text-indent="0in" style:auto-text-indent="false" style:page-number="auto" fo:background-color="transparent" fo:keep-with-next="always"/>
<style:text-properties officeooo:rsid="0000966e" officeooo:paragraph-rsid="0000966e"/>
</style:style>
<style:style style:name="P15" style:family="paragraph" style:parent-style-name="Subtitle">
<style:text-properties officeooo:rsid="000165f1" officeooo:paragraph-rsid="000165f1"/>
</style:style>
<style:style style:name="P16" style:family="paragraph" style:parent-style-name="Standard">
<style:text-properties officeooo:rsid="0000966e" officeooo:paragraph-rsid="0000966e"/>
</style:style>
<style:style style:name="P17" style:family="paragraph" style:parent-style-name="Standard" style:master-page-name="">
<style:paragraph-properties style:page-number="auto"/>
<style:text-properties officeooo:rsid="0000966e" officeooo:paragraph-rsid="0000966e"/>
</style:style>
<style:style style:name="P18" style:family="paragraph" style:parent-style-name="Contents_20_Heading">
<style:paragraph-properties fo:break-before="page"/>
</style:style>
<style:style style:name="P19" style:family="paragraph" style:parent-style-name="Heading_20_1">
<style:paragraph-properties fo:break-before="page"/>
<style:text-properties officeooo:rsid="0002592b" officeooo:paragraph-rsid="0002592b"/>
</style:style>
<style:style style:name="P20" style:family="paragraph" style:parent-style-name="Heading_20_2">
<style:text-properties officeooo:rsid="0002592b" officeooo:paragraph-rsid="0002592b"/>
</style:style>
<style:style style:name="P21" style:family="paragraph" style:parent-style-name="Heading_20_2">
<style:text-properties officeooo:paragraph-rsid="0002592b"/>
</style:style>
<style:style style:name="P22" style:family="paragraph" style:parent-style-name="Contents_20_1">
<style:paragraph-properties>
<style:tab-stops>
<style:tab-stop style:position="6.9252in" style:type="right" style:leader-style="dotted" style:leader-text="."/>
</style:tab-stops>
</style:paragraph-properties>
</style:style>
<style:style style:name="P23" style:family="paragraph" style:parent-style-name="Heading_20_3">
<style:text-properties officeooo:rsid="0004d562" officeooo:paragraph-rsid="0004d562"/>
</style:style>
<style:style style:name="P24" style:family="paragraph" style:parent-style-name="Contents_20_2">
<style:paragraph-properties>
<style:tab-stops>
<style:tab-stop style:position="6.7283in" style:type="right" style:leader-style="dotted" style:leader-text="."/>
</style:tab-stops>
</style:paragraph-properties>
</style:style>
<style:style style:name="P25" style:family="paragraph" style:parent-style-name="Contents_20_3">
<style:paragraph-properties>
<style:tab-stops>
<style:tab-stop style:position="6.5319in" style:type="right" style:leader-style="dotted" style:leader-text="."/>
</style:tab-stops>
</style:paragraph-properties>
</style:style>
<style:style style:name="P26" style:family="paragraph" style:parent-style-name="Footnote">
<style:text-properties fo:font-weight="bold" officeooo:rsid="00087adf" officeooo:paragraph-rsid="00087adf" style:font-weight-asian="bold" style:font-weight-complex="bold"/>
</style:style>
<style:style style:name="P27" style:family="paragraph" style:parent-style-name="Standard" style:master-page-name="First_20_Page">
<style:paragraph-properties style:page-number="auto"/>
<style:text-properties officeooo:rsid="0000966e" officeooo:paragraph-rsid="0000966e"/>
</style:style>
<style:style style:name="P28" style:family="paragraph" style:parent-style-name="Text_20_body" style:list-style-name="L1">
<style:text-properties officeooo:paragraph-rsid="000d91dc"/>
</style:style>
<style:style style:name="P29" style:family="paragraph" style:parent-style-name="Text_20_body" style:list-style-name="L1">
<style:text-properties officeooo:rsid="000d91dc" officeooo:paragraph-rsid="000d91dc"/>
</style:style>
<style:style style:name="P30" style:family="paragraph" style:parent-style-name="Text_20_body" style:list-style-name="L1">
<style:text-properties officeooo:rsid="000e7666" officeooo:paragraph-rsid="000e7666"/>
</style:style>
<style:style style:name="P31" style:family="paragraph" style:parent-style-name="Text_20_body" style:list-style-name="L1">
<style:text-properties fo:font-style="normal" style:text-underline-style="none" fo:font-weight="normal" officeooo:rsid="000e7666" officeooo:paragraph-rsid="000e7666" style:font-style-asian="normal" style:font-weight-asian="normal" style:font-style-complex="normal" style:font-weight-complex="normal"/>
</style:style>
<style:style style:name="P32" style:family="paragraph" style:parent-style-name="Heading_20_2">
<style:text-properties officeooo:rsid="0002592b" officeooo:paragraph-rsid="0002592b"/>
</style:style>
<style:style style:name="P33" style:family="paragraph" style:parent-style-name="Heading_20_1">
<style:paragraph-properties fo:break-before="page"/>
<style:text-properties officeooo:rsid="0002592b" officeooo:paragraph-rsid="0002592b"/>
</style:style>
<style:style style:name="P34" style:family="paragraph" style:parent-style-name="Heading_20_3">
<style:text-properties officeooo:rsid="0004d562" officeooo:paragraph-rsid="0004d562"/>
</style:style>
<style:style style:name="T1" style:family="text">
<style:text-properties fo:font-weight="bold" style:font-weight-asian="bold" style:font-weight-complex="bold"/>
</style:style>
<style:style style:name="T2" style:family="text">
<style:text-properties fo:font-weight="bold" officeooo:rsid="00074189" style:font-weight-asian="bold" style:font-weight-complex="bold"/>
</style:style>
<style:style style:name="T3" style:family="text">
<style:text-properties fo:font-weight="normal" style:font-weight-asian="normal" style:font-weight-complex="normal"/>
</style:style>
<style:style style:name="T4" style:family="text">
<style:text-properties fo:font-weight="normal" officeooo:rsid="0003d8d6" style:font-weight-asian="normal" style:font-weight-complex="normal"/>
</style:style>
<style:style style:name="T5" style:family="text">
<style:text-properties fo:font-weight="normal" officeooo:rsid="0004d562" style:font-weight-asian="normal" style:font-weight-complex="normal"/>
</style:style>
<style:style style:name="T6" style:family="text">
<style:text-properties fo:font-weight="normal" officeooo:rsid="00074189" style:font-weight-asian="normal" style:font-weight-complex="normal"/>
</style:style>
<style:style style:name="T7" style:family="text">
<style:text-properties fo:font-style="italic" style:font-style-asian="italic" style:font-style-complex="italic"/>
</style:style>
<style:style style:name="T8" style:family="text">
<style:text-properties fo:font-style="italic" officeooo:rsid="0003d8d6" style:font-style-asian="italic" style:font-style-complex="italic"/>
</style:style>
<style:style style:name="T9" style:family="text">
<style:text-properties fo:font-style="italic" officeooo:rsid="00074189" style:font-style-asian="italic" style:font-style-complex="italic"/>
</style:style>
<style:style style:name="T10" style:family="text">
<style:text-properties fo:font-style="italic" officeooo:rsid="00087adf" style:font-style-asian="italic" style:font-style-complex="italic"/>
</style:style>
<style:style style:name="T11" style:family="text">
<style:text-properties fo:font-style="italic" officeooo:rsid="000d91dc" style:font-style-asian="italic" style:font-style-complex="italic"/>
</style:style>
<style:style style:name="T12" style:family="text">
<style:text-properties fo:font-style="italic" fo:font-weight="bold" officeooo:rsid="00087adf" style:font-style-asian="italic" style:font-weight-asian="bold" style:font-style-complex="italic" style:font-weight-complex="bold"/>
</style:style>
<style:style style:name="T13" style:family="text">
<style:text-properties fo:font-style="italic" fo:font-weight="bold" officeooo:rsid="000d91dc" style:font-style-asian="italic" style:font-weight-asian="bold" style:font-style-complex="italic" style:font-weight-complex="bold"/>
</style:style>
<style:style style:name="T14" style:family="text">
<style:text-properties fo:font-style="italic" fo:font-weight="normal" style:font-style-asian="italic" style:font-weight-asian="normal" style:font-style-complex="italic" style:font-weight-complex="normal"/>
</style:style>
<style:style style:name="T15" style:family="text">
<style:text-properties fo:font-style="italic" fo:font-weight="normal" officeooo:rsid="00087adf" style:font-style-asian="italic" style:font-weight-asian="normal" style:font-style-complex="italic" style:font-weight-complex="normal"/>
</style:style>
<style:style style:name="T16" style:family="text">
<style:text-properties fo:font-style="italic" style:text-underline-style="none" fo:font-weight="normal" style:font-style-asian="italic" style:font-weight-asian="normal" style:font-style-complex="italic" style:font-weight-complex="normal"/>
</style:style>
<style:style style:name="T17" style:family="text">
<style:text-properties fo:font-style="normal" style:font-style-asian="normal" style:font-style-complex="normal"/>
</style:style>
<style:style style:name="T18" style:family="text">
<style:text-properties fo:font-style="normal" officeooo:rsid="0003d8d6" style:font-style-asian="normal" style:font-style-complex="normal"/>
</style:style>
<style:style style:name="T19" style:family="text">
<style:text-properties fo:font-style="normal" officeooo:rsid="00074189" style:font-style-asian="normal" style:font-style-complex="normal"/>
</style:style>
<style:style style:name="T20" style:family="text">
<style:text-properties fo:font-style="normal" officeooo:rsid="00087adf" style:font-style-asian="normal" style:font-style-complex="normal"/>
</style:style>
<style:style style:name="T21" style:family="text">
<style:text-properties fo:font-style="normal" officeooo:rsid="000d91dc" style:font-style-asian="normal" style:font-style-complex="normal"/>
</style:style>
<style:style style:name="T22" style:family="text">
<style:text-properties fo:font-style="normal" fo:font-weight="bold" officeooo:rsid="00087adf" style:font-style-asian="normal" style:font-weight-asian="bold" style:font-style-complex="normal" style:font-weight-complex="bold"/>
</style:style>
<style:style style:name="T23" style:family="text">
<style:text-properties fo:font-style="normal" fo:font-weight="bold" officeooo:rsid="000e7666" style:font-style-asian="normal" style:font-weight-asian="bold" style:font-style-complex="normal" style:font-weight-complex="bold"/>
</style:style>
<style:style style:name="T24" style:family="text">
<style:text-properties fo:font-style="normal" fo:font-weight="normal" style:font-style-asian="normal" style:font-weight-asian="normal" style:font-style-complex="normal" style:font-weight-complex="normal"/>
</style:style>
<style:style style:name="T25" style:family="text">
<style:text-properties fo:font-style="normal" fo:font-weight="normal" officeooo:rsid="00087adf" style:font-style-asian="normal" style:font-weight-asian="normal" style:font-style-complex="normal" style:font-weight-complex="normal"/>
</style:style>
<style:style style:name="T26" style:family="text">
<style:text-properties fo:font-style="normal" fo:font-weight="normal" officeooo:rsid="000d91dc" style:font-style-asian="normal" style:font-weight-asian="normal" style:font-style-complex="normal" style:font-weight-complex="normal"/>
</style:style>
<style:style style:name="T27" style:family="text">
<style:text-properties fo:font-style="normal" fo:font-weight="normal" officeooo:rsid="000e7666" style:font-style-asian="normal" style:font-weight-asian="normal" style:font-style-complex="normal" style:font-weight-complex="normal"/>
</style:style>
<style:style style:name="T28" style:family="text">
<style:text-properties fo:font-style="normal" style:text-underline-style="solid" style:text-underline-width="auto" style:text-underline-color="font-color" fo:font-weight="normal" style:font-style-asian="normal" style:font-weight-asian="normal" style:font-style-complex="normal" style:font-weight-complex="normal"/>
</style:style>
<style:style style:name="T29" style:family="text">
<style:text-properties fo:font-style="normal" style:text-underline-style="solid" style:text-underline-width="auto" style:text-underline-color="font-color" fo:font-weight="bold" style:font-style-asian="normal" style:font-weight-asian="bold" style:font-style-complex="normal" style:font-weight-complex="bold"/>
</style:style>
<style:style style:name="T30" style:family="text">
<style:text-properties fo:font-style="normal" style:text-underline-style="none" fo:font-weight="normal" style:font-style-asian="normal" style:font-weight-asian="normal" style:font-style-complex="normal" style:font-weight-complex="normal"/>
</style:style>
<style:style style:name="T31" style:family="text">
<style:text-properties fo:font-style="normal" style:text-underline-style="none" fo:font-weight="normal" officeooo:rsid="000e7666" style:font-style-asian="normal" style:font-weight-asian="normal" style:font-style-complex="normal" style:font-weight-complex="normal"/>
</style:style>
<style:style style:name="T32" style:family="text">
<style:text-properties officeooo:rsid="0002592b"/>
</style:style>
<style:style style:name="T33" style:family="text">
<style:text-properties officeooo:rsid="0004d562"/>
</style:style>
<style:style style:name="T34" style:family="text">
<style:text-properties officeooo:rsid="00074189"/>
</style:style>
<style:style style:name="T35" style:family="text">
<style:text-properties officeooo:rsid="00087adf"/>
</style:style>
<style:style style:name="fr1" style:family="graphic" style:parent-style-name="Frame">
<style:graphic-properties style:vertical-pos="middle" style:vertical-rel="page-content" style:horizontal-pos="from-left" style:horizontal-rel="page" fo:padding="0in" fo:border="none" style:shadow="none" draw:shadow-opacity="100%"/>
</style:style>
<style:style style:name="Sect1" style:family="section">
<style:section-properties style:editable="false">
<style:columns fo:column-count="1" fo:column-gap="0in"/>
</style:section-properties>
</style:style>
<text:list-style style:name="L1">
<text:list-level-style-bullet text:level="1" text:style-name="Bullet_20_Symbols" text:bullet-char="•">
<style:list-level-properties text:list-level-position-and-space-mode="label-alignment">
<style:list-level-label-alignment text:label-followed-by="listtab" text:list-tab-stop-position="0.5in" fo:text-indent="-0.25in" fo:margin-left="0.5in"/>
</style:list-level-properties>
</text:list-level-style-bullet>
<text:list-level-style-bullet text:level="2" text:style-name="Bullet_20_Symbols" text:bullet-char="◦">
<style:list-level-properties text:list-level-position-and-space-mode="label-alignment">
<style:list-level-label-alignment text:label-followed-by="listtab" text:list-tab-stop-position="0.75in" fo:text-indent="-0.25in" fo:margin-left="0.75in"/>
</style:list-level-properties>
</text:list-level-style-bullet>
<text:list-level-style-bullet text:level="3" text:style-name="Bullet_20_Symbols" text:bullet-char="▪">
<style:list-level-properties text:list-level-position-and-space-mode="label-alignment">
<style:list-level-label-alignment text:label-followed-by="listtab" text:list-tab-stop-position="1in" fo:text-indent="-0.25in" fo:margin-left="1in"/>
</style:list-level-properties>
</text:list-level-style-bullet>
<text:list-level-style-bullet text:level="4" text:style-name="Bullet_20_Symbols" text:bullet-char="•">
<style:list-level-properties text:list-level-position-and-space-mode="label-alignment">
<style:list-level-label-alignment text:label-followed-by="listtab" text:list-tab-stop-position="1.25in" fo:text-indent="-0.25in" fo:margin-left="1.25in"/>
</style:list-level-properties>
</text:list-level-style-bullet>
<text:list-level-style-bullet text:level="5" text:style-name="Bullet_20_Symbols" text:bullet-char="◦">
<style:list-level-properties text:list-level-position-and-space-mode="label-alignment">
<style:list-level-label-alignment text:label-followed-by="listtab" text:list-tab-stop-position="1.5in" fo:text-indent="-0.25in" fo:margin-left="1.5in"/>
</style:list-level-properties>
</text:list-level-style-bullet>
<text:list-level-style-bullet text:level="6" text:style-name="Bullet_20_Symbols" text:bullet-char="▪">
<style:list-level-properties text:list-level-position-and-space-mode="label-alignment">
<style:list-level-label-alignment text:label-followed-by="listtab" text:list-tab-stop-position="1.75in" fo:text-indent="-0.25in" fo:margin-left="1.75in"/>
</style:list-level-properties>
</text:list-level-style-bullet>
<text:list-level-style-bullet text:level="7" text:style-name="Bullet_20_Symbols" text:bullet-char="•">
<style:list-level-properties text:list-level-position-and-space-mode="label-alignment">
<style:list-level-label-alignment text:label-followed-by="listtab" text:list-tab-stop-position="2in" fo:text-indent="-0.25in" fo:margin-left="2in"/>
</style:list-level-properties>
</text:list-level-style-bullet>
<text:list-level-style-bullet text:level="8" text:style-name="Bullet_20_Symbols" text:bullet-char="◦">
<style:list-level-properties text:list-level-position-and-space-mode="label-alignment">
<style:list-level-label-alignment text:label-followed-by="listtab" text:list-tab-stop-position="2.25in" fo:text-indent="-0.25in" fo:margin-left="2.25in"/>
</style:list-level-properties>
</text:list-level-style-bullet>
<text:list-level-style-bullet text:level="9" text:style-name="Bullet_20_Symbols" text:bullet-char="▪">
<style:list-level-properties text:list-level-position-and-space-mode="label-alignment">
<style:list-level-label-alignment text:label-followed-by="listtab" text:list-tab-stop-position="2.5in" fo:text-indent="-0.25in" fo:margin-left="2.5in"/>
</style:list-level-properties>
</text:list-level-style-bullet>
<text:list-level-style-bullet text:level="10" text:style-name="Bullet_20_Symbols" text:bullet-char="•">
<style:list-level-properties text:list-level-position-and-space-mode="label-alignment">
<style:list-level-label-alignment text:label-followed-by="listtab" text:list-tab-stop-position="2.75in" fo:text-indent="-0.25in" fo:margin-left="2.75in"/>
</style:list-level-properties>
</text:list-level-style-bullet>
</text:list-style>
<style:page-layout style:name="pm1">
<style:page-layout-properties fo:page-width="8.5in" fo:page-height="11in" style:num-format="1" style:print-orientation="portrait" fo:margin-top="0.7874in" fo:margin-bottom="0.7874in" fo:margin-left="0.7874in" fo:margin-right="0.7874in" style:writing-mode="lr-tb" style:footnote-max-height="0in">
<style:footnote-sep style:width="0.0071in" style:distance-before-sep="0.0398in" style:distance-after-sep="0.0398in" style:line-style="solid" style:adjustment="left" style:rel-width="25%" style:color="#000000"/>
</style:page-layout-properties>
<style:header-style/>
<style:footer-style>
<style:header-footer-properties fo:min-height="0in" fo:margin-left="0in" fo:margin-right="0in" fo:margin-top="0.1965in"/>
</style:footer-style>
</style:page-layout>
<style:page-layout style:name="pm2">
<style:page-layout-properties fo:page-width="8.5in" fo:page-height="11in" style:num-format="1" style:print-orientation="portrait" fo:margin-top="0.7874in" fo:margin-bottom="0.7874in" fo:margin-left="0.7874in" fo:margin-right="0.7874in" style:writing-mode="lr-tb" style:footnote-max-height="0in">
<style:footnote-sep style:width="0.0071in" style:distance-before-sep="0.0398in" style:distance-after-sep="0.0398in" style:line-style="solid" style:adjustment="left" style:rel-width="25%" style:color="#000000"/>
</style:page-layout-properties>
<style:header-style>
<style:header-footer-properties fo:min-height="0in" fo:margin-left="0in" fo:margin-right="0in" fo:margin-bottom="0.1965in"/>
</style:header-style>
<style:footer-style/>
</style:page-layout>
<number:date-style style:name="N79" number:automatic-order="true">
<number:day-of-week number:style="long"/>
<number:text>, </number:text>
<number:month number:style="long" number:textual="true"/>
<number:text> </number:text>
<number:day/>
<number:text>, </number:text>
<number:year number:style="long"/>
</number:date-style>
</office:automatic-styles>
<office:master-styles>
<style:master-page style:name="Standard" style:page-layout-name="pm1">
<style:footer>
<text:p text:style-name="P1">BDisk Manual<text:tab/><text:tab/>Page <text:page-number text:select-page="current">5</text:page-number> of <text:page-count>5</text:page-count></text:p>
</style:footer>
</style:master-page>
<style:master-page style:name="First_20_Page" style:display-name="First Page" style:page-layout-name="pm2" style:next-style-name="Standard">
<style:header>
<text:p text:style-name="P2"><text:modification-date style:data-style-name="N79">Sunday, December 4, 2016</text:modification-date></text:p>
</style:header>
</style:master-page>
</office:master-styles>
<office:body>
<office:text text:use-soft-page-breaks="true">
<office:forms form:automatic-focus="false" form:apply-design-mode="false"/>
<text:sequence-decls>
<text:sequence-decl text:display-outline-level="0" text:name="Illustration"/>
<text:sequence-decl text:display-outline-level="0" text:name="Table"/>
<text:sequence-decl text:display-outline-level="0" text:name="Text"/>
<text:sequence-decl text:display-outline-level="0" text:name="Drawing"/>
</text:sequence-decls><draw:frame draw:style-name="fr1" draw:name="Frame1" text:anchor-type="page" text:anchor-page-number="1" svg:x="1in" svg:width="6.4374in" draw:z-index="0">
<draw:text-box fo:min-height="0.2in">
<text:p text:style-name="P14">BDISK</text:p>
<text:p text:style-name="P15">Manual v1.0</text:p>
<text:p text:style-name="P5">Brent Saner</text:p>
<text:p text:style-name="P5"><text:a xlink:type="simple" xlink:href="mailto:bts@square-r00t.net?subject=BDisk%20Manual" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">bts@square-r00t.net</text:a></text:p>
</draw:text-box>
</draw:frame>
<text:p text:style-name="P27"/>
<text:table-of-content text:style-name="Sect1" text:protected="true" text:name="Table of Contents1">
<text:table-of-content-source text:outline-level="10">
<text:index-title-template text:style-name="Contents_20_Heading">Table of Contents</text:index-title-template>
<text:table-of-content-entry-template text:outline-level="1" text:style-name="Contents_20_1">
<text:index-entry-link-start/>
<text:index-entry-chapter/>
<text:index-entry-text/>
<text:index-entry-tab-stop style:type="right" style:leader-char="."/>
<text:index-entry-page-number/>
<text:index-entry-link-end/>
</text:table-of-content-entry-template>
<text:table-of-content-entry-template text:outline-level="2" text:style-name="Contents_20_2">
<text:index-entry-link-start text:style-name="Index_20_Link"/>
<text:index-entry-chapter/>
<text:index-entry-text/>
<text:index-entry-tab-stop style:type="right" style:leader-char="."/>
<text:index-entry-page-number/>
<text:index-entry-link-end/>
</text:table-of-content-entry-template>
<text:table-of-content-entry-template text:outline-level="3" text:style-name="Contents_20_3">
<text:index-entry-link-start text:style-name="Index_20_Link"/>
<text:index-entry-chapter/>
<text:index-entry-text/>
<text:index-entry-tab-stop style:type="right" style:leader-char="."/>
<text:index-entry-page-number/>
<text:index-entry-link-end/>
</text:table-of-content-entry-template>
<text:table-of-content-entry-template text:outline-level="4" text:style-name="Contents_20_4">
<text:index-entry-link-start text:style-name="Index_20_Link"/>
<text:index-entry-chapter/>
<text:index-entry-text/>
<text:index-entry-tab-stop style:type="right" style:leader-char="."/>
<text:index-entry-page-number/>
<text:index-entry-link-end/>
</text:table-of-content-entry-template>
<text:table-of-content-entry-template text:outline-level="5" text:style-name="Contents_20_5">
<text:index-entry-link-start text:style-name="Index_20_Link"/>
<text:index-entry-chapter/>
<text:index-entry-text/>
<text:index-entry-tab-stop style:type="right" style:leader-char="."/>
<text:index-entry-page-number/>
<text:index-entry-link-end/>
</text:table-of-content-entry-template>
<text:table-of-content-entry-template text:outline-level="6" text:style-name="Contents_20_6">
<text:index-entry-link-start text:style-name="Index_20_Link"/>
<text:index-entry-chapter/>
<text:index-entry-text/>
<text:index-entry-tab-stop style:type="right" style:leader-char="."/>
<text:index-entry-page-number/>
<text:index-entry-link-end/>
</text:table-of-content-entry-template>
<text:table-of-content-entry-template text:outline-level="7" text:style-name="Contents_20_7">
<text:index-entry-link-start text:style-name="Index_20_Link"/>
<text:index-entry-chapter/>
<text:index-entry-text/>
<text:index-entry-tab-stop style:type="right" style:leader-char="."/>
<text:index-entry-page-number/>
<text:index-entry-link-end/>
</text:table-of-content-entry-template>
<text:table-of-content-entry-template text:outline-level="8" text:style-name="Contents_20_8">
<text:index-entry-link-start text:style-name="Index_20_Link"/>
<text:index-entry-chapter/>
<text:index-entry-text/>
<text:index-entry-tab-stop style:type="right" style:leader-char="."/>
<text:index-entry-page-number/>
<text:index-entry-link-end/>
</text:table-of-content-entry-template>
<text:table-of-content-entry-template text:outline-level="9" text:style-name="Contents_20_9">
<text:index-entry-link-start text:style-name="Index_20_Link"/>
<text:index-entry-chapter/>
<text:index-entry-text/>
<text:index-entry-tab-stop style:type="right" style:leader-char="."/>
<text:index-entry-page-number/>
<text:index-entry-link-end/>
</text:table-of-content-entry-template>
<text:table-of-content-entry-template text:outline-level="10" text:style-name="Contents_20_10">
<text:index-entry-link-start text:style-name="Index_20_Link"/>
<text:index-entry-chapter/>
<text:index-entry-text/>
<text:index-entry-tab-stop style:type="right" style:leader-char="."/>
<text:index-entry-page-number/>
<text:index-entry-link-end/>
</text:table-of-content-entry-template>
</text:table-of-content-source>
<text:index-body>
<text:index-title text:style-name="Sect1" text:name="Table of Contents1_Head">
<text:p text:style-name="P18">Table of Contents</text:p>
</text:index-title>
<text:p text:style-name="P22"><text:a xlink:type="simple" xlink:href="#__RefHeading___Toc237_1260022884" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Chapter I: Introduction<text:tab/>3</text:a></text:p>
<text:p text:style-name="P24"><text:a xlink:type="simple" xlink:href="#__RefHeading___Toc254_1260022884" text:style-name="Index_20_Link" text:visited-style-name="Index_20_Link"><text:s/>Section I.1: What is BDisk?<text:tab/>3</text:a></text:p>
<text:p text:style-name="P24"><text:a xlink:type="simple" xlink:href="#__RefHeading___Toc379_1260022884" text:style-name="Index_20_Link" text:visited-style-name="Index_20_Link"><text:s/>Section I.2: Who wrote it?<text:tab/>3</text:a></text:p>
<text:p text:style-name="P24"><text:a xlink:type="simple" xlink:href="#__RefHeading___Toc256_1260022884" text:style-name="Index_20_Link" text:visited-style-name="Index_20_Link"><text:s/>Section I.3: What is this document?<text:tab/>3</text:a></text:p>
<text:p text:style-name="P25"><text:a xlink:type="simple" xlink:href="#__RefHeading___Toc173_449581326" text:style-name="Index_20_Link" text:visited-style-name="Index_20_Link">I.3.i: Conventions used in this document<text:tab/>3</text:a></text:p>
<text:p text:style-name="P24"><text:a xlink:type="simple" xlink:href="#__RefHeading___Toc258_1260022884" text:style-name="Index_20_Link" text:visited-style-name="Index_20_Link"><text:s/>Section I.4: Further information/resources<text:tab/>3</text:a></text:p>
<text:p text:style-name="P25"><text:a xlink:type="simple" xlink:href="#__RefHeading___Toc220_1657685180" text:style-name="Index_20_Link" text:visited-style-name="Index_20_Link">I.4.i: For Users<text:tab/>3</text:a></text:p>
<text:p text:style-name="P25"><text:a xlink:type="simple" xlink:href="#__RefHeading___Toc175_449581326" text:style-name="Index_20_Link" text:visited-style-name="Index_20_Link">I.4.ii: For Developers<text:tab/>4</text:a></text:p>
<text:p text:style-name="P22"><text:a xlink:type="simple" xlink:href="#__RefHeading___Toc232_667539389" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">Chapter II: Getting Started<text:tab/>4</text:a></text:p>
</text:index-body>
</text:table-of-content>
<text:p text:style-name="P16"/>
<text:h text:style-name="P19" text:outline-level="1"><text:bookmark-start text:name="__RefHeading___Toc237_1260022884"/>Introduction<text:bookmark-end text:name="__RefHeading___Toc237_1260022884"/></text:h>
<text:h text:style-name="P20" text:outline-level="2"><text:bookmark-start text:name="__RefHeading___Toc254_1260022884"/>What is BDisk?<text:bookmark-end text:name="__RefHeading___Toc254_1260022884"/></text:h>
<text:p text:style-name="P6"><text:tab/>BDisk refers to both a live distribution I use in my own uses (for rescue situations, recovery, etc.) but foremost and most importantly, it refers to the tool I use for <text:span text:style-name="T1">building</text:span><text:span text:style-name="T3"> that distribution. This is what this project and documentation refer to when the word “BDisk” is used.</text:span></text:p>
<text:p text:style-name="First_20_line_20_indent"><text:tab/>BDisk is <text:a xlink:type="simple" xlink:href="https://www.gnu.org/licenses/gpl-3.0.en.html" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">GPLv3</text:a>-licensed. This means that you can use it for business reasons, personal reasons, modify it, etc. There are a few restrictions I retain, however, on this (dont worry; theyre all in line with the GPLv3). You can find the full license in <text:span text:style-name="T1">docs/LICENSE</text:span>.</text:p>
<text:p text:style-name="P7"><text:span text:style-name="T18"><text:tab/></text:span><text:span text:style-name="T19">When I rewrote BDisk in Python 3.x (I should take the time to note that I am still quite new to python so expect there to be plenty of optimizations to be made and general WTF-ery from seasoned python developers), one of my main goals was to make it as easy to use as possible. This is surprisingly hard to do- its quite challenging to try to approach software youve written with the mindset of someone other than you. Please see </text:span><text:span text:style-name="T20">the</text:span><text:span text:style-name="T19"> </text:span><text:span text:style-name="T9"><text:bookmark-ref text:reference-format="text" text:ref-name="__RefHeading___Toc220_1657685180">For Users</text:bookmark-ref></text:span><text:span text:style-name="T19"> </text:span><text:span text:style-name="T20">section (</text:span><text:span text:style-name="T20"><text:bookmark-ref text:reference-format="chapter" text:ref-name="__RefHeading___Toc220_1657685180">I.4.i</text:bookmark-ref></text:span><text:span text:style-name="T20">).</text:span></text:p>
<text:h text:style-name="P20" text:outline-level="2"><text:bookmark-start text:name="__RefHeading___Toc379_1260022884"/>Who wrote it?<text:bookmark-end text:name="__RefHeading___Toc379_1260022884"/></text:h>
<text:p text:style-name="P6"><text:tab/>I (Brent Saner) am a GNU/Linux Systems/Network Administrator/Engineer- I wear a lot of hats. I have a lot of side projects to keep me busy when Im not working at <text:span text:style-name="T7">${dayjob}</text:span><text:span text:style-name="T17">, </text:span><text:span text:style-name="T18">mostly to assist in </text:span><text:span text:style-name="T8">other</text:span><text:span text:style-name="T18"> side projects and become more efficient and proficient </text:span><text:span text:style-name="T19">at those tasks. “</text:span><text:a xlink:type="simple" xlink:href="http://catb.org/jargon/html/Y/yak-shaving.html" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link"><text:span text:style-name="T19">Shaving the yak</text:span></text:a><text:span text:style-name="T19">,” indeed.</text:span></text:p>
<text:p text:style-name="P6"><text:span text:style-name="T19"><text:tab/></text:span><text:span text:style-name="T20">I did a lot of research into how low-level boot operations take place, both in BIOS and UEFI</text:span><text:span text:style-name="T20"><text:note text:id="ftn1" text:note-class="footnote"><text:note-citation>1</text:note-citation><text:note-body>
<text:p text:style-name="P26">Unified Extensible Firmware Interface<text:span text:style-name="T3">. UEFI </text:span><text:span text:style-name="T14">is not</text:span><text:span text:style-name="T24"> BIOS, and BIOS </text:span><text:span text:style-name="T14">is not</text:span><text:span text:style-name="T24"> UEFI.</text:span></text:p></text:note-body></text:note></text:span><text:span text:style-name="T20"> (and corresponding concepts such as Secureboot, etc.) which is no easy task to understand and very commonly misunderstood. (For instance, a common misconception is that UEFI necessarily implies Secureboot. This is quite far from the truth and UEFI by itself is quite a useful replacement for BIOS). Many of these misconceptions are simply due to lack of knowledge about the intricacies and complexities behind these technologies. Some of it is simply FUD</text:span><text:span text:style-name="T25"><text:note text:id="ftn2" text:note-class="footnote"><text:note-citation>2</text:note-citation><text:note-body>
<text:p text:style-name="P26">Fear, Uncertainty, Doubt<text:span text:style-name="T3">- propaganda, in other words.</text:span></text:p></text:note-body></text:note></text:span><text:span text:style-name="T25"> generated to prey on the fears of those who dont understand the underlying specifications or technology.</text:span></text:p>
<text:p text:style-name="P6"><text:soft-page-break/><text:span text:style-name="T19"><text:tab/></text:span><text:span text:style-name="T20">Its my hope that by releasing this utility and documenting it that you can use it and save some time for yourself as well </text:span><text:span text:style-name="T21">(and hopefully get the chance to learn a bit more in the process!)</text:span><text:span text:style-name="T20">. </text:span></text:p>
<text:h text:style-name="P20" text:outline-level="2"><text:bookmark-start text:name="__RefHeading___Toc256_1260022884"/>What is this document?<text:bookmark-end text:name="__RefHeading___Toc256_1260022884"/></text:h>
<text:p text:style-name="P8"><text:tab/><text:span text:style-name="T34">This document is intended to be an indexed and easier-to-use reference than the other plaintext files (in </text:span><text:span text:style-name="T2">docs/</text:span><text:span text:style-name="T6">). </text:span></text:p>
<text:h text:style-name="Heading_20_3" text:outline-level="3"><text:bookmark-start text:name="__RefHeading___Toc173_449581326"/>Conventions used in this document<text:bookmark-end text:name="__RefHeading___Toc173_449581326"/></text:h>
<text:p text:style-name="P11"><text:tab/><text:span text:style-name="T35">There are certain formats used in this document to specify what type of text they are representing.</text:span></text:p>
<text:list xml:id="list4073382874348611620" text:style-name="L1">
<text:list-item>
<text:p text:style-name="P28"><text:span text:style-name="T35">Commands will be </text:span><text:span text:style-name="T10">in italics</text:span><text:span text:style-name="T20">.</text:span></text:p>
<text:list>
<text:list-item>
<text:p text:style-name="P28"><text:span text:style-name="T21">e.g. </text:span><text:span text:style-name="T11">cat /tmp/file.txt</text:span></text:p>
</text:list-item>
</text:list>
</text:list-item>
<text:list-item>
<text:p text:style-name="P28"><text:span text:style-name="T20">Paths (files, directories) will be </text:span><text:span text:style-name="T22">in bold</text:span><text:span text:style-name="T25"> </text:span><text:span text:style-name="T27">(unless part of a command, output, etc.)</text:span><text:span text:style-name="T15">.</text:span></text:p>
<text:list>
<text:list-item>
<text:p text:style-name="P28"><text:span text:style-name="T26">e.g. </text:span><text:span text:style-name="T15"><text:s/></text:span><text:span text:style-name="T12">/</text:span><text:span text:style-name="T13">tmp/file.txt</text:span></text:p>
</text:list-item>
</text:list>
</text:list-item>
<text:list-item>
<text:p text:style-name="P29"><text:span text:style-name="T24">Variables will be </text:span><text:span text:style-name="T28">underlined</text:span></text:p>
<text:list>
<text:list-item>
<text:p text:style-name="P29"><text:span text:style-name="T30">e.g. print(</text:span><text:span text:style-name="T28">foo</text:span><text:span text:style-name="T30">)</text:span></text:p>
</text:list-item>
</text:list>
</text:list-item>
<text:list-item>
<text:p text:style-name="P29"><text:span text:style-name="T30">URLs (hyperlinks, really; you should be able to click on them) are </text:span><text:span text:style-name="T29">bold and underlined</text:span><text:span text:style-name="T30">.</text:span></text:p>
<text:list>
<text:list-item>
<text:p text:style-name="P29"><text:span text:style-name="T30">e.g. </text:span><text:a xlink:type="simple" xlink:href="https://bdisk.square-r00t.net/" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">https://bdisk.square-r00t.net</text:a></text:p>
</text:list-item>
</text:list>
</text:list-item>
<text:list-item>
<text:p text:style-name="P29"><text:span text:style-name="T30">Paramaters/arguments will be either </text:span><text:span text:style-name="T31">in</text:span><text:span text:style-name="T30"> &lt;</text:span><text:span text:style-name="T31">angled brackets&gt;, [square brackets], or [&lt;both&gt;]</text:span></text:p>
<text:list>
<text:list-item>
<text:p text:style-name="P31">&lt;&gt; are used for positional arguments/parameters, or “placeholders”</text:p>
</text:list-item>
<text:list-item>
<text:p text:style-name="P31">[] are used for optional arguments/parameters</text:p>
</text:list-item>
<text:list-item>
<text:p text:style-name="P30"><text:span text:style-name="T30">Thus e.g. </text:span><text:span text:style-name="T16">someprog dostuff &lt;stufftodo&gt; [--domorestuff &lt;morestufftodo&gt;]</text:span></text:p>
</text:list-item>
</text:list>
</text:list-item>
</text:list>
<text:h text:style-name="P20" text:outline-level="2"><text:bookmark-start text:name="__RefHeading___Toc258_1260022884"/><text:soft-page-break/>Further information/resources<text:bookmark-end text:name="__RefHeading___Toc258_1260022884"/></text:h>
<text:h text:style-name="P23" text:outline-level="3"><text:bookmark-start text:name="__RefHeading___Toc220_1657685180"/>For Users<text:bookmark-end text:name="__RefHeading___Toc220_1657685180"/></text:h>
<text:p text:style-name="P10"><text:tab/><text:span text:style-name="T33">If you encounter any bugs (or have any suggestions on how to improve BDisk!), please file a bug report in my </text:span><text:a xlink:type="simple" xlink:href="https://bugs.square-r00t.net/index.php?project=2" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link"><text:span text:style-name="T33">bug tracker</text:span></text:a><text:span text:style-name="T33">.</text:span></text:p>
<text:h text:style-name="P23" text:outline-level="3"><text:bookmark-start text:name="__RefHeading___Toc175_449581326"/>For Developers<text:bookmark-end text:name="__RefHeading___Toc175_449581326"/></text:h>
<text:p text:style-name="P9"><text:span text:style-name="T4"><text:tab/>The source is available to browse </text:span><text:a xlink:type="simple" xlink:href="https://git.square-r00t.net/BDisk/" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">online</text:a><text:span text:style-name="T4"> or can be checked out via </text:span><text:a xlink:type="simple" xlink:href="https://git-scm.com/" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">git</text:a><text:span text:style-name="T4"> (via the </text:span><text:a xlink:type="simple" xlink:href="git://git.square-r00t.net/bdisk.git" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">git protocol</text:a><text:span text:style-name="T4"> or </text:span><text:a xlink:type="simple" xlink:href="https://git.square-r00t.net/BDisk" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">http protocol</text:a><text:span text:style-name="T4">). It is also available via Arch Linuxs </text:span><text:a xlink:type="simple" xlink:href="https://aur.archlinux.org/packages/bdisk/" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">AUR</text:a><text:span text:style-name="T4">. If you are interested in packaging </text:span><text:span text:style-name="T5">BDisk for other distributions, please feel free to </text:span><text:a xlink:type="simple" xlink:href="mailto:bts@square-r00t.net?subject=[BDISK]%20Packaging" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">contact me</text:a><text:span text:style-name="T5">.</text:span></text:p>
<text:h text:style-name="Heading_20_1" text:outline-level="1"><text:bookmark-start text:name="__RefHeading___Toc232_667539389"/><text:span text:style-name="T5">G</text:span><text:span text:style-name="T3">etting Started</text:span><text:bookmark-end text:name="__RefHeading___Toc232_667539389"/></text:h>
<text:p text:style-name="P8"/>
</office:text>
</office:body>
</office:document>

View File

@ -7,6 +7,7 @@
-GPG sigs on built files
-fix the branding, etc. on ipxe. :(
-convert docs to asciidoc, turn up instead of RTD (https://github.com/rtfd/readthedocs.org/issues/17#issuecomment-3752702)
-add ipxe to full iso maybe?

## General ##


4
docs/manual/BODY.adoc Normal file
View File

@ -0,0 +1,4 @@
include::USER.adoc[]
include::DEV.adoc[]

include::FOOT.adoc[]

10
docs/manual/DEV.adoc Normal file
View File

@ -0,0 +1,10 @@
= Developer Manual
[partintro]
.What good is software if nobody changes it?
--
Text.

More text.
--

include::dev/FUNCTIONS.adoc[]

4
docs/manual/FOOT.adoc Normal file
View File

@ -0,0 +1,4 @@
[appendix]
= User Manual
[appendix]
= Developer Manual

View File

@ -1,33 +1,38 @@
BDisk User and Developer Manual
===============================
Brent Saner
= BDisk User and Developer Manual
Brent Saner <bts@square-r00t.net>
v1.0, 2016-12
:doctype: book

<<<
:data-uri:
:imagesdir: images
:toc: preamble
:toc2: left
:sectnums:
:toclevels: 5
// So there's currently a "bug" in that the TOC will display with continued numbering across parts.
// i essentially want the opposite of https://github.com/asciidoctor/asciidoctor/issues/979 TODO

[dedication]
Thanks
======
= Thanks
See CREDITS in the project source for a list of thanks.


[preface]
Preface
=======
= Preface
=== About the Author
I (Brent Saner) am a GNU/Linux Systems/Network Administrator/Engineer- I wear a lot of hats. I have a lot of side projects to keep me busy when Im not working at _${dayjob}_, mostly to assist in other side projects and become more efficient and proficient at those tasks. “Shaving the yak,” footnote:[See http://catb.org/jargon/html/Y/yak-shaving.html] indeed.

A lot of research went into how low-level boot operations take place when writing BDisk, both in BIOS and UEFI footnote:[*Unified Extensible Firmware Interface.* UEFI is not BIOS, and BIOS is not UEFI.] (and corresponding concepts such as Secureboot, etc.) which is no easy task to understand and very commonly misunderstood. (For instance, a common misconception is that UEFI necessarily implies Secureboot. This is quite far from the truth and UEFI by itself is quite a useful replacement for BIOS). I invite you to do research into the specifications yourself; it's rather fascinating.

What is BDisk?
~~~~~~~~~~~~~~

=== What is BDisk?
BDisk refers to both a live distribution I use in my own uses (for rescue situations, recovery, etc.) but foremost and most importantly, it also refers to the tool I use for building that distribution. The latter is what this project and documentation refer to when the word “BDisk” is used.

When I rewrote BDisk in Python 3.x (I should take the time to note that I am still quite new to Python so expect there to be plenty of optimizations to be made and general WTF-ery from seasoned Python developers), one of my main goals was to make it as easy to use as possible. This is surprisingly hard to do- its quite challenging to try to approach software youve written with the mindset of someone other than you.

Its my hope that by releasing this utility (and documenting it), you can use it and save some time for yourself as well (and hopefully get the chance to learn a bit more in the process!).

Copyright/Licensing
~~~~~~~~~~~~~~~~~~~

=== Copyright/Licensing
BDisk is GPLv3-licensed. This means that you can use it for business reasons, personal reasons, modify it, etc. Please be sure to familiarize yourself with the full set of terms. You can find the full license in `docs/LICENSE`.

image::https://www.gnu.org/graphics/gplv3-127x51.png[GPLv3,align="center"]
@ -36,16 +41,4 @@ This document (and all other associated author-generated documentation) are rele

image::https://i.creativecommons.org/l/by-sa/4.0/88x31.png[CC-BY-SA_4.0,align="center"]

<<<

User Manual
===========

[partintro]
.What good is software if nobody uses it?
--
BDisk was ultimately designed to make your life easier.
--

TEXT
----
include::BODY.adoc[]

23
docs/manual/USER.adoc Normal file
View File

@ -0,0 +1,23 @@
= User Manual

[partintro]
.What good is software if nobody uses it?
--
BDisk was ultimately designed to make your life easier. "Why would I possibly need yet another LiveCD/LiveUSB?" Well, that's sort of the point- by customizing a live distribution of GNU/Linux to _your_ particular needs/desires/whimsy, you can do away with the multiple other images you keep around. It's designed to let you create a fully customized distribution.

Using BDisk, you can:

* Install GNU/Linux (https://wiki.archlinux.org/index.php/installation_guide[Arch], https://watchmysys.com/blog/2015/02/installing-centos-7-with-a-chroot/[CentOS], https://www.debian.org/releases/stable/amd64/apds03.html.en[Debian], https://wiki.gentoo.org/wiki/Handbook:AMD64#Installing_Gentoo[Gentoo], https://help.ubuntu.com/lts/installation-guide/powerpc/apds04.html[Ubuntu]...). BDisk may be Arch-based, but many if not most other distros offer ways to install from any GNU/Linux live distribution.
* Perform disk maintenance (https://raid.wiki.kernel.org/index.php/RAID_setup[mdadm], fdisk/http://www.rodsbooks.com/gdisk/[gdisk], http://gparted.org/[gparted], https://www.thomas-krenn.com/en/wiki/StorCLI[storcli], etc.). Need to replace that disk in your RAID and you don't have hotswap? Not a problem!
* Rescue, recover, wipe (http://www.sleuthkit.org/sleuthkit/[scalpel], http://www.andybev.com/index.php/Nwipe[nwipe], http://foremost.sourceforge.net/[foremost], etc.). Chances are this is why you booted a live distro in the first place, yes?
* Boot over the Internet (or LAN). Burning a new image to CD/DVD/USB is a pain. BDisk has built-in support for http://ipxe.org/[iPXE] (and traditional PXE setups). Update the filesystem image once, deploy it everywhere.
* And much, much more.
** Seriously.

This manual will give you the information you need to build your very own live GNU/Linux distribution.
--

include::user/GETTING_STARTED.adoc[]

include::user/PROJECT_LAYOUT.adoc[]

View File

@ -0,0 +1,5 @@
== Layout of BDisk functions
text

== Moar Functions
and more text.

Binary file not shown.

After

Width:  |  Height:  |  Size: 270 KiB

View File

@ -0,0 +1,36 @@
== Getting Started

=== Downloading
If it isn't in your distro's repositories (It *is* in Arch's AUR! Both https://aur.archlinux.org/packages/bdisk/[tagged release] and https://aur.archlinux.org/packages/bdisk-git/[git master].), you can still easily get rolling. Simply visit the project's https://git.square-r00t.net/BDisk/[source code web interface] and download a tarball under the *Download* column:

image::fig1.1.png[cgit,align="center"]

If you know the tag of the commit you want, you can use curl:

`curl -sL -o bdisk.tar.xz https://git.square-r00t.net/BDisk/snapshot/BDisk-3.11.tar.xz`

or wget:

`wget -O bdisk.tar.xz https://git.square-r00t.net/BDisk/snapshot/BDisk-3.11.tar.xz`

You can use `https://git.square-r00t.net/BDisk/snapshot/BDisk-master.tar.xz` for the URL if you want the latest working version. If you want a snapshot of a specific commit, you can use e.g. `https://git.square-r00t.net/BDisk/snapshot/BDisk-5ac510762ce00eef213957825de0e6d07186e7f8.tar.xz` and so on.

Alternatively, you can use https://git-scm.com/[git]. Git most definitely _should_ be in your distro's repositories.

TIP: If you're new to git and want to learn more, I highly recommend the book https://git-scm.com/book/en/v2[Pro Git]. It is available for free download (or online reading).

You can use https:

You can clone via https:

`git clone https://git.square-r00t.net/BDisk`

or native git protocol:

`git clone git://git.square-r00t.net/bdisk.git BDisk`

The git protocol is much faster, but at a cost of lessened security.

=== Prerequisites
Here's a complete list of prerequisites:

View File

@ -0,0 +1,2 @@
== Project Structure
file tree, explain dirs and files

View File

@ -1,2 +1,3 @@
# Commented lines are supported (via a preceding # only).
# Packages from the AUR can be specified.
efitools

View File

@ -1,3 +1,3 @@
title {{ bdisk['pname'] }} iPXE (netboot)
efi /EFI/BOOT/mini.efi
title {{ bdisk['pname'] }} iPXE (Mini)
efi /EFI/boot/ipxe.efi