<?xml version="1.0" encoding="UTF-8"?>
<commit>
  <added type="array">
    <added>
      <filename>dfu-util/CMakeLists.txt</filename>
    </added>
    <added>
      <filename>dfu-util/COPYING</filename>
    </added>
    <added>
      <filename>dfu-util/README</filename>
    </added>
    <added>
      <filename>dfu-util/dfu.c</filename>
    </added>
    <added>
      <filename>dfu-util/dfu.h</filename>
    </added>
    <added>
      <filename>dfu-util/main.c</filename>
    </added>
    <added>
      <filename>dfu-util/sam7dfu.c</filename>
    </added>
    <added>
      <filename>dfu-util/sam7dfu.h</filename>
    </added>
    <added>
      <filename>dfu-util/usb_dfu.h</filename>
    </added>
    <added>
      <filename>ipsw-patch/FirmwareBundles/iPhone1,1_2.0_5A347.bundle/018-3786-2-nowipe.patch</filename>
    </added>
    <added>
      <filename>ipsw-patch/FirmwareBundles/iPhone1,1_2.0_5A347.bundle/018-3786-2.patch</filename>
    </added>
    <added>
      <filename>ipsw-patch/FirmwareBundles/iPhone1,1_2.0_5A347.bundle/DeviceTree.m68ap.patch</filename>
    </added>
    <added>
      <filename>ipsw-patch/FirmwareBundles/iPhone1,1_2.0_5A347.bundle/Info.plist</filename>
    </added>
    <added>
      <filename>ipsw-patch/FirmwareBundles/iPhone1,1_2.0_5A347.bundle/LLB.m68ap.RELEASE.patch</filename>
    </added>
    <added>
      <filename>ipsw-patch/FirmwareBundles/iPhone1,1_2.0_5A347.bundle/Services.plist.patch</filename>
    </added>
    <added>
      <filename>ipsw-patch/FirmwareBundles/iPhone1,1_2.0_5A347.bundle/WTF.m68ap.RELEASE.patch</filename>
    </added>
    <added>
      <filename>ipsw-patch/FirmwareBundles/iPhone1,1_2.0_5A347.bundle/WTF.s5l8900xall.RELEASE.patch</filename>
    </added>
    <added>
      <filename>ipsw-patch/FirmwareBundles/iPhone1,1_2.0_5A347.bundle/bbupdater.patch</filename>
    </added>
    <added>
      <filename>ipsw-patch/FirmwareBundles/iPhone1,1_2.0_5A347.bundle/fstab.patch</filename>
    </added>
    <added>
      <filename>ipsw-patch/FirmwareBundles/iPhone1,1_2.0_5A347.bundle/iBEC.m68ap.RELEASE.patch</filename>
    </added>
    <added>
      <filename>ipsw-patch/FirmwareBundles/iPhone1,1_2.0_5A347.bundle/iBSS.m68ap.RELEASE.patch</filename>
    </added>
    <added>
      <filename>ipsw-patch/FirmwareBundles/iPhone1,1_2.0_5A347.bundle/iBoot.m68ap.RELEASE.patch</filename>
    </added>
    <added>
      <filename>ipsw-patch/FirmwareBundles/iPhone1,1_2.0_5A347.bundle/kernelcache.release.patch</filename>
    </added>
    <added>
      <filename>ipsw-patch/FirmwareBundles/iPhone1,1_2.0_5A347.bundle/kernelcache.release.patch.bak.patch</filename>
    </added>
    <added>
      <filename>ipsw-patch/FirmwareBundles/iPhone1,1_2.0_5A347.bundle/lockdownd.patch</filename>
    </added>
    <added>
      <filename>ipsw-patch/FirmwareBundles/iPhone1,2_2.0_5A347.bundle/.Info.plist.swp</filename>
    </added>
    <added>
      <filename>ipsw-patch/FirmwareBundles/iPhone1,2_2.0_5A347.bundle/018-3783-2-nowipe.patch</filename>
    </added>
    <added>
      <filename>ipsw-patch/FirmwareBundles/iPhone1,2_2.0_5A347.bundle/018-3783-2.patch</filename>
    </added>
    <added>
      <filename>ipsw-patch/FirmwareBundles/iPhone1,2_2.0_5A347.bundle/DeviceTree.n82ap.patch</filename>
    </added>
    <added>
      <filename>ipsw-patch/FirmwareBundles/iPhone1,2_2.0_5A347.bundle/Info.plist</filename>
    </added>
    <added>
      <filename>ipsw-patch/FirmwareBundles/iPhone1,2_2.0_5A347.bundle/LLB.n82ap.RELEASE.patch</filename>
    </added>
    <added>
      <filename>ipsw-patch/FirmwareBundles/iPhone1,2_2.0_5A347.bundle/Services.plist.patch</filename>
    </added>
    <added>
      <filename>ipsw-patch/FirmwareBundles/iPhone1,2_2.0_5A347.bundle/WTF.n82ap.RELEASE.patch</filename>
    </added>
    <added>
      <filename>ipsw-patch/FirmwareBundles/iPhone1,2_2.0_5A347.bundle/WTF.s5l8900xall.RELEASE.patch</filename>
    </added>
    <added>
      <filename>ipsw-patch/FirmwareBundles/iPhone1,2_2.0_5A347.bundle/fstab.patch</filename>
    </added>
    <added>
      <filename>ipsw-patch/FirmwareBundles/iPhone1,2_2.0_5A347.bundle/iBEC.n82ap.RELEASE.patch</filename>
    </added>
    <added>
      <filename>ipsw-patch/FirmwareBundles/iPhone1,2_2.0_5A347.bundle/iBSS.n82ap.RELEASE.patch</filename>
    </added>
    <added>
      <filename>ipsw-patch/FirmwareBundles/iPhone1,2_2.0_5A347.bundle/iBoot.n82ap.RELEASE.patch</filename>
    </added>
    <added>
      <filename>ipsw-patch/FirmwareBundles/iPhone1,2_2.0_5A347.bundle/kernelcache.release.patch</filename>
    </added>
    <added>
      <filename>ipsw-patch/FirmwareBundles/iPhone1,2_2.0_5A347.bundle/lockdownd.patch</filename>
    </added>
    <added>
      <filename>ipsw-patch/FirmwareBundles/iPod1,1_2.0_5A347.bundle/018-3783-2-nowipe.patch</filename>
    </added>
    <added>
      <filename>ipsw-patch/FirmwareBundles/iPod1,1_2.0_5A347.bundle/018-3783-2.patch</filename>
    </added>
    <added>
      <filename>ipsw-patch/FirmwareBundles/iPod1,1_2.0_5A347.bundle/DeviceTree.n45ap.patch</filename>
    </added>
    <added>
      <filename>ipsw-patch/FirmwareBundles/iPod1,1_2.0_5A347.bundle/Info.plist</filename>
    </added>
    <added>
      <filename>ipsw-patch/FirmwareBundles/iPod1,1_2.0_5A347.bundle/LLB.n45ap.RELEASE.patch</filename>
    </added>
    <added>
      <filename>ipsw-patch/FirmwareBundles/iPod1,1_2.0_5A347.bundle/Services.plist.patch</filename>
    </added>
    <added>
      <filename>ipsw-patch/FirmwareBundles/iPod1,1_2.0_5A347.bundle/WTF.n45ap.RELEASE.patch</filename>
    </added>
    <added>
      <filename>ipsw-patch/FirmwareBundles/iPod1,1_2.0_5A347.bundle/WTF.s5l8900xall.RELEASE.patch</filename>
    </added>
    <added>
      <filename>ipsw-patch/FirmwareBundles/iPod1,1_2.0_5A347.bundle/fstab.patch</filename>
    </added>
    <added>
      <filename>ipsw-patch/FirmwareBundles/iPod1,1_2.0_5A347.bundle/iBEC.n45ap.RELEASE.patch</filename>
    </added>
    <added>
      <filename>ipsw-patch/FirmwareBundles/iPod1,1_2.0_5A347.bundle/iBSS.n45ap.RELEASE.patch</filename>
    </added>
    <added>
      <filename>ipsw-patch/FirmwareBundles/iPod1,1_2.0_5A347.bundle/iBoot.n45ap.RELEASE.patch</filename>
    </added>
    <added>
      <filename>ipsw-patch/FirmwareBundles/iPod1,1_2.0_5A347.bundle/kernelcache.release.patch</filename>
    </added>
    <added>
      <filename>ipsw-patch/bundles/BootNeuter.tar</filename>
    </added>
    <added>
      <filename>ipsw-patch/bundles/Cydia.tar</filename>
    </added>
    <added>
      <filename>ipsw-patch/bundles/YoutubeActivation.tar</filename>
    </added>
    <added>
      <filename>ipsw-patch/bundles/logo.png</filename>
    </added>
    <added>
      <filename>ipsw-patch/bundles/recovery.png</filename>
    </added>
  </added>
  <modified type="array">
    <modified>
      <diff>@@ -37,6 +37,17 @@ Credits
 This utility is merely an implementation of Pwnage, which is the work of
 roxfan, Turbo, wizdaz, bgm, and pumpkin. Those guys are the real heroes.
 
+Also, the new super-awesome bootrom exploit is courtesy of wizdaz.
+
+MuscleNerd has put a lot of work into the 3G effort. The BootNeuter unlock
+for first-generation iPhones packaged within is primarily his effort.
+
+Thanks also go to gray and c1de0x for their RCE efforts. saurik is the author
+of Cydia, included within. bugout was the lucky guy who did our first 3G tests.
+
+Thanks to chris for his hardware wisdom, Zf for his French humor, and pytey
+for the support on the serial stuff.
+
 XPwn attempts to use all the same data files and patches as PwnageTool to
 avoid duplication of present and future labor. I believe that wizdaz probably
 put the most sweat into PwnageTool, and the pwnage ramdisk is the work of
@@ -52,10 +63,104 @@ the initial exploratory work with the undocumented DMG format.
 Usage
 -----
 
-There are two utilities in this package, as well as the InternalPackages and
+There are two utilities in this package, as well as the bundles and
 FirmwareBundles folders from PwnageTool, and Turbo's autopwn ramdisk.
 
-## xpwn
+## ipsw
+
+*NOTE: Important change for 2.0: (uncompressed) tarballs rather than paths are
+now used for bundles*
+
+ipsw is a more complex tool to generate custom IPSWs that you can restore
+after using xpwn (or any other pwnage-based utility). This is important, since
+that's how the jailbreak actually occurs.
+
+	./ipsw &lt;input.ipsw&gt; &lt;output.ipsw&gt; [-b &lt;bootimage.png&gt;] [-nowipe] \
+		[-r &lt;recoveryimage.png&gt;] [-e &quot;&lt;action to exclude&gt;&quot;] \
+		[[-unlock] [-use39] [-use46] [-cleanup] \
+		-3 &lt;bootloader 3.9 file&gt; -4 &lt;bootloader 4.6 file&gt;] \
+		&lt;package1.tar&gt; &lt;package2.tar&gt;...
+
+
+Yes, I know, confusing syntax. The first two options are the IPSW you want to
+modify, and where you want to save the modified IPSW respectively. -b and -r
+have the same semantics and requirements as for xpwn. You can also specify
+actions to exclude from the &quot;FilesystemPatches&quot; section of the Info.plist
+for your particular IPSW (in FirmwareBundles/).
+
+The most common use of the '-e' flag is to disable automatic activation, i.e.
+'-e &quot;Phone Activation&quot;'. Note that the double-quotes are necessary.
+
+-nowipe disables Apple's wiping of the NAND (user data), before proceeding
+with the restore. This allows the restore to happen much, much more quickly.
+
+-unlock, -use39, -use46, -cleanup, -3, and -4 are valid only if you merge the
+BootNeuter package. These provide instructions to BootNeuter (which provides
+unlocking for iPhones). If you choose to use BootNeuter, you must specify the
+location where the 3.9 and 4.9 bootloader can be found with the -3 and -4
+options. These cannot be included with xpwn due to copyright restrictions.
+
+-unlock specifies that you wish BootNeuter to unlock the phone (if it is not
+already unlocked). -use39 and -use46 instructs BootNeuter to either upgrade
+or downgrade your bootloader (if it is not already on the version you choose).
+-cleanup instructs BootNeuter to delete itself off of the iPhone after it is
+complete. If you do not specify -cleanup, BootNeuter will be accessible via
+SpringBoard.
+
+The last options are for tar-files to merge. All permissions and ownership
+will be preserved except for already directories that already exist. This is
+to prevent accidental clobbering (we're guessing you don't really want to
+alter permissions on existing directories). This behavior may change in the
+future.
+
+Told you it was a mess.
+
+## dfu-util
+
+dfu-util is an utility adapted from OpenMoko that satisfies the &quot;pwning&quot; stage
+of the process, that is, allowing the execution of our unsigned code. It
+relies upon an exploit in the DFU mode of the iPhone/iPod touch bootrom. This
+cannot be fixed by Apple on the current hardware revisions. If we can mess
+with the device before iTunes sees it, we can have it load a WTF with
+signature checking disabled with the exploit, and load an iBSS with signature
+checking disabled over that WTF. iTunes will see the device as a regular
+iPhone/iPod in recovery mode, and will happily send our custom firmware to it,
+which will now be accepted.
+
+YOU MUST COMPLETELY DISABLE iTUNES WITH TASK MANAGER OR EQUIVALENT BEFORE
+PROCEEDING.
+
+Only AFTERWARDS do you put your device into DFU mode. If you switch the order
+of these steps, iTunes will be able to load software onto your device without
+this vulnerability, rendering dfu-util useless.
+
+AFTER you have disabled iTunes, iTunesHelper, etc., plug your device into the
+computer. Shut down the device in the normal way if necessary (Slide to
+shutdown). Hold down the Power and Home buttons simultaneously and count
+slowly to ten. (You may need to push down on power an instant before you
+push down on home). The iPhone will start. At around the time you count to 6,
+the iPhone will shut down again. KEEP HOLDING BOTH BUTTONS. Hold down both
+buttons until you reach 10. At this point, release the power button ONLY.
+Keep holding the stand-by button forever (this may take up to two minutes).
+You will know when you can stop holding the button when Windows notifies you
+via an audible cue that a USB device has connected. This is your device in
+DFU mode. The screen of the device will remain completely powered off.
+
+THEN, run dfu-util with the following syntax:
+
+	sudo ./dfu-util &lt;custom.ipsw&gt; &lt;n82ap|m68ap|n45ap&gt;
+
+Where n82ap = 3G iPhone, m68ap = First-generation iPhone, n45ap = iPod touch.
+Note that you're using your CUSTOM IPSW for this stage, since we will need the
+patched firmware, not the stock firmware. dfu-util will pick out the right
+files from the ipsw and send them in the right order. If your screen powers on
+and then turns white, then you know it worked. You can now restore with iTunes.
+
+## xpwn *(DEPRECATED)*
+
+If DFU mode is too complicated for you, and you have a first-generation phone,
+you can still use the legacy xpwn ramdisk method on 1.1.4 to pwn your phone.
+Then you can restore the custom IPSW without messing with DFU mode.
 
 xpwn will use libibooter to bootstrap the autopwn ramdisk. This will patch
 NOR so that unsigned IPSWs can subsequently be used. The vulnerability used
@@ -93,78 +198,26 @@ used to swap boot logos without restoring.
 A restore with a non-customized IPSW will undo what xpwn did (the NOR will be
 reflashed with Apple's image that does have signature checking)
 
-## ipsw
-
-ipsw is a more complex tool to generate custom IPSWs that you can restore
-after using xpwn (or any other pwnage-based utility). This is important, since
-that's how the jailbreak actually occurs.
-
-	./ipsw &lt;input.ipsw&gt; &lt;output.ipsw&gt; [-b &lt;bootimage.png&gt;] [-nobbupdate] \
-		[-r &lt;recoveryimage.png&gt;] [-e &quot;&lt;action to exclude&gt;&quot;] \
-		[[-unlock] [-use39] [-use46] [-cleanup] \
-		-3 &lt;bootloader 3.9 file&gt; -4 &lt;bootloader 4.6 file&gt;] \
-		&lt;path/to/merge1&gt; &lt;path/to/merge2&gt;...
-
-Yes, I know, confusing syntax. The first two options are the IPSW you want to
-modify, and where you want to save the modified IPSW respectively. -b and -r
-have the same semantics and requirements as for xpwn. You can also specify
-actions to exclude from the &quot;FilesystemPatches&quot; section of the Info.plist
-for your particular IPSW (in FirmwareBundles/).
-
-The most common use of the '-e' flag is to disable automatic activation, i.e.
-'-e &quot;Phone Activation&quot;'. Note that the double-quotes are necessary.
-
--nobbupdate disables Apple's baseband upgrade program from running during
-the restore. However, bbupdate must be enabled for unlocking with BootNeuter.
-
--unlock, -use39, -use46, -cleanup, -3, and -4 are valid only if you merge the
-BootNeuter package. These provide instructions to BootNeuter (which provides
-unlocking for iPhones). If you choose to use BootNeuter, you must specify the
-location where the 3.9 and 4.9 bootloader can be found with the -3 and -4
-options. These cannot be included with xpwn due to copyright restrictions.
-
--unlock specifies that you wish BootNeuter to unlock the phone (if it is not
-already unlocked). -use39 and -use46 instructs BootNeuter to either upgrade
-or downgrade your bootloader (if it is not already on the version you choose).
--cleanup instructs BootNeuter to delete itself off of the iPhone after it is
-complete. If you do not specify -cleanup, BootNeuter will be accessible via
-SpringBoard.
-
-The last options are for directories to merge into the root filesystem of your
-device. The included bundles can be merged by specifying something like
-&quot;bundles/Installer.bundle/files&quot;. Notice the &quot;files&quot; part must be specified.
-It is also perfectly possible to set up your own files to merge.
-
-/Applications/Installer.app/Installer will be given special setuid
-permissions. All files that have the format /Applications/XXX.app/XXX will be
-given execute permissions. All files in /sbin, /bin, /usr/bin, /usr/sbin,
-/usr/libexec, /usr/local/bin, /usr/local/sbin, /usr/local/libexec will also be
-given execute permissions. Special permissions are also given to BootNeuter.
-Everything else will be non-executable, so a special LaunchDaemon task may need
-to be constructed to properly set up your custom apps. Generally, however,
-those permissions are already sufficient.
-
-Told you it was a mess.
 
 ### Examples
 
-Jailbreaking iPod 1.1.4:
+Jailbreaking iPod 2.0:
 
-	./ipsw iPod1,1_1.1.4_4A102_Restore.ipsw custom.ipsw \
-		bundles/Installer.bundle/files
+	./ipsw iPod1,1_2.0_5A347.bundle custom.ipsw \
+		bundles/Cydia.tar
 
-Jailbreaking iPhone 1.1.4:
+Jailbreaking iPhone 3G:
 
-	./ipsw iPhone1,1_1.1.4_4A102_Restore.ipsw custom.ipsw \
-		-e &quot;Phone Activation&quot; bundles/Installer.bundle/files
+	./ipsw iPhone1,2_2.0_5A347.bundle custom.ipsw \
+		-e &quot;Phone Activation&quot; bundles/Cydia.tar
 
-Jailbreaking, activating, and unlocking iPhone 1.1.4:
+Jailbreaking, activating, and unlocking iPhone 2.0:
 
-	./ipsw iPhone1,1_1.1.4_4A102_Restore.ipsw custom.ipsw \
+	./ipsw iPhone1,1_2.0_5A347.bundle custom.ipsw \
 		-unlock -cleanup -3 bl39.bin -4 bl46.bin \
-		bundles/Installer.bundle/files \
-		bundles/BootNeuter.bundle/files \
-		bundles/YoutubeActivation.bundle/files
+		bundles/Cydia.tar \
+		bundles/BootNeuter.tar \
+		bundles/YoutubeActivation.tar
 
 Technical notes
 ---------------</diff>
      <filename>README.markdown</filename>
    </modified>
    <modified>
      <diff>@@ -99,6 +99,9 @@ AbstractFile* createAbstractFileFromDummy() {
 
 size_t memRead(AbstractFile* file, void* data, size_t len) {
   MemWrapperInfo* info = (MemWrapperInfo*) (file-&gt;data); 
+  if(info-&gt;bufferSize &lt; (info-&gt;offset + len)) {
+    len = info-&gt;bufferSize - info-&gt;offset;
+  }
   memcpy(data, (void*)((uint8_t*)(*(info-&gt;buffer)) + (uint32_t)info-&gt;offset), len);
   info-&gt;offset += (size_t)len;
   return len;</diff>
      <filename>common/abstractfile.c</filename>
    </modified>
    <modified>
      <diff>@@ -4,6 +4,7 @@
 
 #include &lt;dmg/dmg.h&gt;
 #include &lt;dmg/filevault.h&gt;
+#include &lt;inttypes.h&gt;
 
 #ifdef HAVE_CRYPT
 
@@ -207,7 +208,7 @@ AbstractFile* createAbstractFileFromFileVault(AbstractFile* file, const char* ke
 	file-&gt;read(file, &amp;signature, sizeof(uint64_t));
 	FLIPENDIAN(signature);
 	if(signature != FILEVAULT_V2_SIGNATURE) {
-		printf(&quot;Unknown signature: %x\n&quot;, signature);
+		printf(&quot;Unknown signature: %&quot; PRId64 &quot;\n&quot;, signature);
 		/* no FileVault v1 handling yet */
 		return NULL;
 	}
@@ -222,7 +223,9 @@ AbstractFile* createAbstractFileFromFileVault(AbstractFile* file, const char* ke
 	flipFileVaultV2Header(&amp;(info-&gt;header.v2));
 	
 	for(i = 0; i &lt; 16; i++) {
-		sscanf(&amp;(key[i * 2]), &quot;%02hhx&quot;, &amp;(aesKey[i]));
+		unsigned int curByte;
+		sscanf(&amp;(key[i * 2]), &quot;%02x&quot;, &amp;curByte);
+		aesKey[i] = curByte;
 	}
 
 	for(i = 0; i &lt; 20; i++) {</diff>
      <filename>dmg/filevault.c</filename>
    </modified>
    <modified>
      <diff>@@ -4,6 +4,7 @@
 #include &lt;zlib.h&gt;
 
 #include &lt;dmg/dmg.h&gt;
+#include &lt;inttypes.h&gt;
 
 #define SECTORS_AT_A_TIME 0x200
 
@@ -71,7 +72,7 @@ BLKXTable* insertBLKX(AbstractFile* out, AbstractFile* in, uint32_t firstSectorN
     strm.zfree = Z_NULL;
     strm.opaque = Z_NULL;
     
-    printf(&quot;run %d: sectors=%lld, left=%d\n&quot;, curRun, blkx-&gt;runs[curRun].sectorCount, numSectors);
+    printf(&quot;run %d: sectors=%&quot; PRId64 &quot;, left=%d\n&quot;, curRun, blkx-&gt;runs[curRun].sectorCount, numSectors);
     
     ASSERT(deflateInit(&amp;strm, Z_DEFAULT_COMPRESSION) == Z_OK, &quot;deflateInit&quot;);
     
@@ -176,7 +177,7 @@ void extractBLKX(AbstractFile* in, AbstractFile* out, BLKXTable* blkx) {
       continue;
     }
     
-    printf(&quot;run %d: sectors=%lld, length=%lld, fileOffset=0x%llx\n&quot;, i, blkx-&gt;runs[i].sectorCount, blkx-&gt;runs[i].compLength, blkx-&gt;runs[i].compOffset);
+    printf(&quot;run %d: sectors=%&quot; PRId64 &quot;, length=%&quot; PRId64 &quot;, fileOffset=0x%&quot; PRIx64 &quot;\n&quot;, i, blkx-&gt;runs[i].sectorCount, blkx-&gt;runs[i].compLength, blkx-&gt;runs[i].compOffset);
     
     switch(blkx-&gt;runs[i].type) {
       case BLOCK_ZLIB:</diff>
      <filename>dmg/io.c</filename>
    </modified>
    <modified>
      <diff>@@ -1,27 +1,29 @@
-#include &lt;stdlib.h&gt;
-#include &lt;stdio.h&gt;
-#include &lt;stdint.h&gt;
-#include &lt;time.h&gt;
-#include &lt;string.h&gt;
-#include &lt;unistd.h&gt;
-#include &lt;hfs/hfsplus.h&gt;
-#include &lt;dmg/dmgfile.h&gt;
-#include &lt;dmg/filevault.h&gt;
-#include &lt;sys/types.h&gt;
-#include &lt;sys/stat.h&gt;
+#include &lt;stdlib.h&gt;
+#include &lt;stdio.h&gt;
+#include &lt;stdint.h&gt;
+#include &lt;time.h&gt;
+#include &lt;string.h&gt;
+#include &lt;unistd.h&gt;
+#include &lt;hfs/hfsplus.h&gt;
+#include &lt;dmg/dmgfile.h&gt;
+#include &lt;dmg/filevault.h&gt;
+#include &lt;sys/types.h&gt;
+#include &lt;sys/stat.h&gt;
 #include &lt;dirent.h&gt;
-#include &quot;hfs/hfslib.h&quot;
-
-char endianness;
-
-void cmd_ls(Volume* volume, int argc, const char *argv[]) {	
-	if(argc &gt; 1)
-		hfs_ls(volume, argv[1]);
-	else
-		hfs_ls(volume, &quot;/&quot;);}
-
-void cmd_cat(Volume* volume, int argc, const char *argv[]) {
-	HFSPlusCatalogRecord* record;
+#include &quot;hfs/hfslib.h&quot;
+#include &lt;inttypes.h&gt;
+
+char endianness;
+
+void cmd_ls(Volume* volume, int argc, const char *argv[]) {	
+	if(argc &gt; 1)
+		hfs_ls(volume, argv[1]);
+	else
+		hfs_ls(volume, &quot;/&quot;);
+}
+
+void cmd_cat(Volume* volume, int argc, const char *argv[]) {
+	HFSPlusCatalogRecord* record;
 	AbstractFile* stdoutFile;
 
 	record = getRecordFromPath(argv[1], volume, NULL, NULL);
@@ -215,11 +217,28 @@ void cmd_grow(Volume* volume, int argc, const char *argv[]) {
 	}
 	
 	newSize = 0;
-	sscanf(argv[1], &quot;%lld&quot;, &amp;newSize);
+	sscanf(argv[1], &quot;%&quot; PRId64, &amp;newSize);
 
 	grow_hfs(volume, newSize);
 
-	printf(&quot;grew volume: %lld\n&quot;, newSize);
+	printf(&quot;grew volume: %&quot; PRId64 &quot;\n&quot;, newSize);
+}
+
+void cmd_untar(Volume* volume, int argc, const char *argv[]) {
+	AbstractFile *inFile;
+	
+	if(argc &lt; 2) {
+		printf(&quot;Not enough arguments&quot;);
+		return;
+	}
+	
+	inFile = createAbstractFileFromFile(fopen(argv[1], &quot;rb&quot;));
+	
+	if(inFile == NULL) {
+		printf(&quot;file to untar not found&quot;);
+	}
+
+	hfs_untar(volume, inFile);
 }
 
 void TestByteOrder()
@@ -238,7 +257,7 @@ int main(int argc, const char *argv[]) {
 	TestByteOrder();
 	
 	if(argc &lt; 3) {
-		printf(&quot;usage: %s &lt;image-file&gt; (-k &lt;key&gt;) &lt;ls|cat|mv|mkdir|add|rm|chmod|extract|extractall|rmall|addall&gt; &lt;arguments&gt;\n&quot;, argv[0]);
+		printf(&quot;usage: %s &lt;image-file&gt; (-k &lt;key&gt;) &lt;ls|cat|mv|mkdir|add|rm|chmod|extract|extractall|rmall|addall|grow|untar&gt; &lt;arguments&gt;\n&quot;, argv[0]);
 		return 0;
 	}
 
@@ -296,6 +315,8 @@ int main(int argc, const char *argv[]) {
 			cmd_addall(volume, argc - argOff, argv + argOff);
 		} else if(strcmp(argv[argOff], &quot;grow&quot;) == 0) {
 			cmd_grow(volume, argc - argOff, argv + argOff);
+		} else if(strcmp(argv[argOff], &quot;untar&quot;) == 0) {
+			cmd_untar(volume, argc - argOff, argv + argOff);
 		}
 	}
 	</diff>
      <filename>hdutil/hdutil.c</filename>
    </modified>
    <modified>
      <diff>@@ -462,7 +462,7 @@ HFSPlusCatalogRecord* getRecordFromPath3(const char* path, Volume* volume, char
   char* pathLimit;
   
   uint32_t realParent;
-  char* lastWordDetectSlash; 
+ 
   int exact;
   
   if(path[0] == '\0' || (path[0] == '/' &amp;&amp; path[1] == '\0')) {
@@ -522,8 +522,7 @@ HFSPlusCatalogRecord* getRecordFromPath3(const char* path, Volume* volume, char
     }
 
     if(traverse) {
-      lastWordDetectSlash = strchr(word, '/');
-      if((lastWordDetectSlash &amp;&amp; *(lastWordDetectSlash + 1) != '\0') || returnLink) {
+      if(((word + strlen(word) + 1) &lt; pathLimit) || returnLink) {
         record = getLinkTarget(record, key.parentID, &amp;key, volume);
         if(record == NULL || exact == FALSE) {
           free(origPath);
@@ -533,13 +532,18 @@ HFSPlusCatalogRecord* getRecordFromPath3(const char* path, Volume* volume, char
     }
 	
     if(record-&gt;recordType == kHFSPlusFileRecord) {	
-      free(origPath);
+	if((word + strlen(word) + 1) &gt;= pathLimit) {
+		free(origPath);
       
-      if(retKey != NULL) {
-        memcpy(retKey, &amp;key, sizeof(HFSPlusCatalogKey));
-      }
+		if(retKey != NULL) {
+			memcpy(retKey, &amp;key, sizeof(HFSPlusCatalogKey));
+		}
       
-      return record;
+		return record;
+	} else {
+		free(origPath);
+		return NULL;
+	}
     }
     
     if(record-&gt;recordType != kHFSPlusFolderRecord)
@@ -860,13 +864,13 @@ HFSCatalogNodeID newFolder(const char* pathName, Volume* volume) {
   } else {
     name = lastSeparator + 1;
     *lastSeparator = '\0';
-    parentFolder = (HFSPlusCatalogFolder*) getRecordFromPath(path, volume, NULL, NULL);
-    
-    if(parentFolder == NULL || parentFolder-&gt;recordType != kHFSPlusFolderRecord) {
-      free(path);
-      free(parentFolder);
-      return FALSE;
-    }
+    parentFolder = (HFSPlusCatalogFolder*) getRecordFromPath(path, volume, NULL, NULL);  
+  }
+
+  if(parentFolder == NULL || parentFolder-&gt;recordType != kHFSPlusFolderRecord) {
+    free(path);
+    free(parentFolder);
+    return FALSE;
   }
   
   newFolderID = volume-&gt;volumeHeader-&gt;nextCatalogID++;
@@ -955,12 +959,12 @@ HFSCatalogNodeID newFile(const char* pathName, Volume* volume) {
     name = lastSeparator + 1;
     *lastSeparator = '\0';
     parentFolder = (HFSPlusCatalogFolder*) getRecordFromPath(path, volume, NULL, NULL);
-    
-    if(parentFolder == NULL || parentFolder-&gt;recordType != kHFSPlusFolderRecord) {
-      free(path);
-      free(parentFolder);
-      return FALSE;
-    }
+  }
+
+  if(parentFolder == NULL || parentFolder-&gt;recordType != kHFSPlusFolderRecord) {
+    free(path);
+    free(parentFolder);
+    return FALSE;
   }
   
   newFileID = volume-&gt;volumeHeader-&gt;nextCatalogID++;</diff>
      <filename>hfs/catalog.c</filename>
    </modified>
    <modified>
      <diff>@@ -8,6 +8,7 @@
 
 #include &lt;hfs/hfslib.h&gt;
 #include &quot;abstractfile.h&quot;
+#include &lt;inttypes.h&gt;
 
 char endianness;
 
@@ -16,7 +17,8 @@ void cmd_ls(Volume* volume, int argc, const char *argv[]) {
 	if(argc &gt; 1)
 		hfs_ls(volume, argv[1]);
 	else
-		hfs_ls(volume, &quot;/&quot;);}
+		hfs_ls(volume, &quot;/&quot;);
+}
 
 void cmd_cat(Volume* volume, int argc, const char *argv[]) {
 	HFSPlusCatalogRecord* record;
@@ -213,11 +215,11 @@ void cmd_grow(Volume* volume, int argc, const char *argv[]) {
 	}
 	
 	newSize = 0;
-	sscanf(argv[1], &quot;%lld&quot;, &amp;newSize);
+	sscanf(argv[1], &quot;%&quot; PRId64, &amp;newSize);
 
 	grow_hfs(volume, newSize);
 
-	printf(&quot;grew volume: %lld\n&quot;, newSize);
+	printf(&quot;grew volume: %&quot; PRId64 &quot;\n&quot;, newSize);
 }
 
 void TestByteOrder()</diff>
      <filename>hfs/hfs.c</filename>
    </modified>
    <modified>
      <diff>@@ -7,6 +7,7 @@
 #include &lt;hfs/hfsplus.h&gt;
 #include &quot;abstractfile.h&quot;
 #include &lt;sys/stat.h&gt;
+#include &lt;inttypes.h&gt;
 
 #define BUFSIZE 1024*1024
 
@@ -132,7 +133,6 @@ int add_hfs(Volume* volume, AbstractFile* inFile, const char* outFileName) {
 			writeToHFSFile((HFSPlusCatalogFile*)record, inFile, volume);
 			ret = TRUE;
 		} else {
-			inFile-&gt;close(inFile);
 			ret = FALSE;
 		}
 	}
@@ -453,7 +453,8 @@ void addall_hfs(Volume* volume, const char* dirToMerge, const char* dest) {
 	ASSERT(chdir(cwd) == 0, &quot;chdir&quot;);
 	free(record);
 	
-}
+}
+
 int copyAcrossVolumes(Volume* volume1, Volume* volume2, char* path1, char* path2) {
 	void* buffer;
 	size_t bufferSize;
@@ -467,7 +468,7 @@ int copyAcrossVolumes(Volume* volume1, Volume* volume2, char* path1, char* path2
 	printf(&quot;retrieving... &quot;); fflush(stdout);
 	get_hfs(volume1, path1, tmpFile);
 	tmpFile-&gt;seek(tmpFile, 0);
-	printf(&quot;writing (%ld)... &quot;, tmpFile-&gt;getLength(tmpFile)); fflush(stdout);
+	printf(&quot;writing (%ld)... &quot;, (long) tmpFile-&gt;getLength(tmpFile)); fflush(stdout);
 	ret = add_hfs(volume2, tmpFile, path2);
 	printf(&quot;done\n&quot;);
 	
@@ -499,7 +500,7 @@ void displayFolder(HFSCatalogNodeID folderID, Volume* volume) {
 			printf(&quot;%06o &quot;, file-&gt;permissions.fileMode);
 			printf(&quot;%3d &quot;, file-&gt;permissions.ownerID);
 			printf(&quot;%3d &quot;, file-&gt;permissions.groupID);
-			printf(&quot;%12lld &quot;, file-&gt;dataFork.logicalSize);
+			printf(&quot;%12&quot; PRId64 &quot; &quot;, file-&gt;dataFork.logicalSize);
 			fileTime = APPLE_TO_UNIX_TIME(file-&gt;contentModDate);
 		}
 			
@@ -526,7 +527,7 @@ void displayFileLSLine(HFSPlusCatalogFile* file, const char* name) {
 	printf(&quot;%06o &quot;, file-&gt;permissions.fileMode);
 	printf(&quot;%3d &quot;, file-&gt;permissions.ownerID);
 	printf(&quot;%3d &quot;, file-&gt;permissions.groupID);
-	printf(&quot;%12lld &quot;, file-&gt;dataFork.logicalSize);
+	printf(&quot;%12&quot; PRId64 &quot; &quot;, file-&gt;dataFork.logicalSize);
 	fileTime = APPLE_TO_UNIX_TIME(file-&gt;contentModDate);
 	date = localtime(&amp;fileTime);
 	if(date != NULL) {
@@ -543,6 +544,7 @@ void hfs_ls(Volume* volume, const char* path) {
 
 	record = getRecordFromPath(path, volume, &amp;name, NULL);
 	
+	printf(&quot;%s: \n&quot;, name);
 	if(record != NULL) {
 		if(record-&gt;recordType == kHFSPlusFolderRecord)
 			displayFolder(((HFSPlusCatalogFolder*)record)-&gt;folderID, volume);  
@@ -556,3 +558,78 @@ void hfs_ls(Volume* volume, const char* path) {
 	
 	free(record);
 }
+
+void hfs_untar(Volume* volume, AbstractFile* tarFile) {
+	size_t tarSize = tarFile-&gt;getLength(tarFile);
+	size_t curRecord = 0;
+	char block[512];
+
+	while(curRecord &lt; tarSize) {
+		tarFile-&gt;seek(tarFile, curRecord);
+		tarFile-&gt;read(tarFile, block, 512);
+
+		uint32_t mode = 0;
+		char* fileName = NULL;
+		const char* target = NULL;
+		uint32_t type = 0;
+		uint32_t size;
+		uint32_t uid;
+		uint32_t gid;
+
+		sscanf(&amp;block[100], &quot;%o&quot;, &amp;mode);
+		fileName = &amp;block[0];
+		sscanf(&amp;block[156], &quot;%o&quot;, &amp;type);
+		target = &amp;block[157];
+		sscanf(&amp;block[124], &quot;%o&quot;, &amp;size);
+		sscanf(&amp;block[108], &quot;%o&quot;, &amp;uid);
+		sscanf(&amp;block[116], &quot;%o&quot;, &amp;gid);
+
+		if(fileName[0] == '\0')
+			break;
+
+		if(fileName[0] == '.' &amp;&amp; fileName[1] == '/') {
+			fileName += 2;
+		}
+
+		if(fileName[0] == '\0')
+			goto loop;
+
+		if(fileName[strlen(fileName) - 1] == '/')
+			fileName[strlen(fileName) - 1] = '\0';
+
+		HFSPlusCatalogRecord* record = getRecordFromPath3(fileName, volume, NULL, NULL, TRUE, FALSE, kHFSRootFolderID);
+		if(record) {
+			if(record-&gt;recordType == kHFSPlusFolderRecord || type == 5) {
+				printf(&quot;ignoring %s, type = %d\n&quot;, fileName, type);
+				goto loop;
+			} else {
+				printf(&quot;replacing %s\n&quot;, fileName);
+				removeFile(fileName, volume);
+			}
+		}
+
+		if(type == 0) {
+			printf(&quot;file: %s (%04o), size = %d\n&quot;, fileName, mode, size);
+			void* buffer = malloc(size);
+			tarFile-&gt;seek(tarFile, curRecord + 512);
+			tarFile-&gt;read(tarFile, buffer, size);
+			AbstractFile* inFile = createAbstractFileFromMemory(&amp;buffer, size);
+			add_hfs(volume, inFile, fileName);
+		} else if(type == 5) {
+			printf(&quot;directory: %s (%04o)\n&quot;, fileName, mode);
+			newFolder(fileName, volume);
+		} else if(type == 2) {
+			printf(&quot;symlink: %s (%04o) -&gt; %s\n&quot;, fileName, mode, target);
+			makeSymlink(fileName, target, volume);
+		}
+
+		chmodFile(fileName, mode, volume);
+		chownFile(fileName, uid, gid, volume);
+
+loop:
+
+		curRecord = (curRecord + 512) + ((size + 511) / 512 * 512);
+	}
+
+}
+</diff>
      <filename>hfs/hfslib.c</filename>
    </modified>
    <modified>
      <diff>@@ -13,7 +13,7 @@ typedef int (*SeekFunc)(AbstractFile* file, off_t offset);
 typedef off_t (*TellFunc)(AbstractFile* file);
 typedef void (*CloseFunc)(AbstractFile* file);
 typedef off_t (*GetLengthFunc)(AbstractFile* file);
-typedef void (*SetKeyFunc)(AbstractFile2* file, const uint8_t* key, const uint8_t* iv);
+typedef void (*SetKeyFunc)(AbstractFile2* file, const unsigned int* key, const unsigned int* iv);
 
 typedef enum AbstractFileType {
 	AbstractFileTypeFile,</diff>
      <filename>includes/abstractfile.h</filename>
    </modified>
    <modified>
      <diff>@@ -16,6 +16,7 @@ extern &quot;C&quot; {
 	void extractAllInFolder(HFSCatalogNodeID folderID, Volume* volume);
 	int copyAcrossVolumes(Volume* volume1, Volume* volume2, char* path1, char* path2);
 
+	void hfs_untar(Volume* volume, AbstractFile* tarFile);
 	void hfs_ls(Volume* volume, const char* path);
 #ifdef __cplusplus
 }</diff>
      <filename>includes/hfs/hfslib.h</filename>
    </modified>
    <modified>
      <diff>@@ -39,10 +39,12 @@ typedef struct Info8900 {
 	AES_KEY         decryptKey;
 	
 	char            dirty;
+	char 		exploit;
 } Info8900;
 
 AbstractFile* createAbstractFileFrom8900(AbstractFile* file);
 AbstractFile* duplicate8900File(AbstractFile* file, AbstractFile* backing);
 void replaceCertificate8900(AbstractFile* file, AbstractFile* certificate);
+void exploit8900(AbstractFile* file);
 
 #endif</diff>
      <filename>includes/xpwn/8900.h</filename>
    </modified>
    <modified>
      <diff>@@ -37,7 +37,7 @@ extern &quot;C&quot; {
 #endif
 	AbstractFile* createAbstractFileFromIBootIM(AbstractFile* file);
 	AbstractFile* duplicateIBootIMFile(AbstractFile* file, AbstractFile* backing);
-	void* replaceBootImage(AbstractFile* imageWrapper, AbstractFile* png, size_t *fileSize);
+	void* replaceBootImage(AbstractFile* imageWrapper, const unsigned int* key, const unsigned int* iv, AbstractFile* png, size_t *fileSize);
 #ifdef __cplusplus
 }
 #endif</diff>
      <filename>includes/xpwn/ibootim.h</filename>
    </modified>
    <modified>
      <diff>@@ -15,6 +15,7 @@
 #define IMG3_BDID_MAGIC 0x42444944
 #define IMG3_SHSH_MAGIC 0x53485348
 #define IMG3_CERT_MAGIC 0x43455254
+#define IMG3_KBAG_MAGIC 0x4B424147
 
 #define IMG3_SIGNATURE IMG3_MAGIC
 
@@ -39,6 +40,12 @@ typedef struct AppleImg3RootHeader {
 	AppleImg3RootExtra extra;
 }__attribute__((__packed__)) AppleImg3RootHeader;
 
+typedef struct AppleImg3KBAGHeader {
+ 
+  uint32_t key_modifier;		// key modifier, can be 0 or 1 	
+  uint32_t key_bits;			// number of bits in the key, can be 128, 192 or 256 (it seems only 128 is supported in current iBoot)
+} AppleImg3KBAGHeader;
+
 struct Img3Element
 {
 	AppleImg3Header* header;
@@ -53,6 +60,7 @@ typedef struct Img3Info {
 	Img3Element* root;
 	Img3Element* data;
 	Img3Element* cert;
+	Img3Element* kbag;
 	int encrypted;
 	AES_KEY encryptKey;
 	AES_KEY decryptKey;</diff>
      <filename>includes/xpwn/img3.h</filename>
    </modified>
    <modified>
      <diff>@@ -10,9 +10,10 @@
 extern &quot;C&quot; {
 #endif
 	AbstractFile* openAbstractFile(AbstractFile* file);
-	AbstractFile* openAbstractFile2(AbstractFile* file, const uint8_t* key, const uint8_t* iv);
+	AbstractFile* openAbstractFile2(AbstractFile* file, const unsigned int* key, const unsigned int* iv);
 	AbstractFile* duplicateAbstractFile(AbstractFile* file, AbstractFile* backing);
-	AbstractFile* duplicateAbstractFileWithCertificate(AbstractFile* file, AbstractFile* backing, AbstractFile* certificate);
+	AbstractFile* duplicateAbstractFile2(AbstractFile* file, AbstractFile* backing, const unsigned int* key, const unsigned int* iv, AbstractFile* certificate);
+	void init_libxpwn();
 #ifdef __cplusplus
 }
 #endif</diff>
      <filename>includes/xpwn/nor_files.h</filename>
    </modified>
    <modified>
      <diff>@@ -20,6 +20,7 @@ extern &quot;C&quot; {
 	void writeOutput(OutputState** state, char* ipsw);
 	void releaseOutput(OutputState** state);
 	OutputState* loadZip(const char* ipsw);
+	void loadZipFile(const char* ipsw, OutputState** output, const char* file);
 #ifdef __cplusplus
 }
 #endif</diff>
      <filename>includes/xpwn/outputstate.h</filename>
    </modified>
    <modified>
      <diff>@@ -10,7 +10,7 @@ extern &quot;C&quot; {
 #endif
 	int patch(AbstractFile* in, AbstractFile* out, AbstractFile* patch);
 	Dictionary* parseIPSW(const char* inputIPSW, const char* bundleRoot, char** bundlePath, OutputState** state);
-	int doPatch(StringValue* patchValue, StringValue* fileValue, const char* bundlePath, OutputState** state);
+	int doPatch(StringValue* patchValue, StringValue* fileValue, const char* bundlePath, OutputState** state, unsigned int* key, unsigned int* iv);
 	void doPatchInPlace(Volume* volume, const char* filePath, const char* patchPath);
 	void fixupBootNeuterArgs(Volume* volume, char unlockBaseband, char selfDestruct, char use39, char use46);
 #ifdef __cplusplus</diff>
      <filename>includes/xpwn/pwnutil.h</filename>
    </modified>
    <modified>
      <diff>@@ -101,7 +101,24 @@ void close8900(AbstractFile* file) {
 		info-&gt;file-&gt;seek(info-&gt;file, sizeof(info-&gt;header) + info-&gt;header.footerSignatureOffset);
 		info-&gt;file-&gt;write(info-&gt;file, info-&gt;footerSignature, 0x80);
 		info-&gt;file-&gt;seek(info-&gt;file, sizeof(info-&gt;header) + info-&gt;header.footerCertOffset);
+
+		if(info-&gt;exploit) {
+			info-&gt;footerCertificate[0x8be] = 0x9F;
+			info-&gt;footerCertificate[0xb08] = 0x55;
+		}
+
 		info-&gt;file-&gt;write(info-&gt;file, info-&gt;footerCertificate, info-&gt;header.footerCertLen);
+
+		unsigned char exploit_data[0x54] = {0};
+
+		if(info-&gt;exploit) {
+			info-&gt;header.footerCertLen = 0xc5e;
+			exploit_data[0x30] = 0x01;
+			exploit_data[0x50] = 0xEC;
+			exploit_data[0x51] = 0x57;
+			exploit_data[0x53] = 0x20;
+			info-&gt;file-&gt;write(info-&gt;file, exploit_data, sizeof(exploit_data));
+		}
 		
 		flipApple8900Header(&amp;(info-&gt;header));
 		SHA1_Init(&amp;sha_ctx);
@@ -122,6 +139,11 @@ void close8900(AbstractFile* file) {
 	free(file);
 }
 
+void exploit8900(AbstractFile* file) {
+	Info8900* info = (Info8900*) (file-&gt;data);
+	info-&gt;exploit = TRUE;
+	info-&gt;dirty = TRUE;
+}
 
 AbstractFile* createAbstractFileFrom8900(AbstractFile* file) {
 	Info8900* info;
@@ -154,6 +176,7 @@ AbstractFile* createAbstractFileFrom8900(AbstractFile* file) {
 	}
 
 	info-&gt;dirty = FALSE;
+	info-&gt;exploit = FALSE;
 	
 	info-&gt;offset = 0;
 	</diff>
      <filename>ipsw-patch/8900.c</filename>
    </modified>
    <modified>
      <diff>@@ -206,7 +206,7 @@ int patch(AbstractFile* in, AbstractFile* out, AbstractFile* patch) {
 	closeBZStream(dpfbz2);
 	closeBZStream(epfbz2);
 	out-&gt;seek(out, 0);
-	
+
 	if(out-&gt;write(out, newBuffer, newsize) != newsize)
 		return -9;
 	out-&gt;close(out);</diff>
      <filename>ipsw-patch/bspatch.c</filename>
    </modified>
    <modified>
      <diff>@@ -118,18 +118,19 @@ AbstractFile* createAbstractFileFromIBootIM(AbstractFile* file) {
 		free(info);
 		return NULL;
 	}
-	
+
 	info-&gt;buffer = malloc(info-&gt;length);
 	compressed = malloc(info-&gt;compLength);
 	file-&gt;read(file, compressed, info-&gt;compLength);
 
 	int length = decompress_lzss(info-&gt;buffer, compressed, info-&gt;compLength);
 	if(length &gt; info-&gt;length) {
-		fprintf(stderr, &quot;createAbstractFileFromIBootIM: decompression error, length == %d (%d + %d), should be == %d (%d x %d x %d)\n&quot;, length, info-&gt;compLength, sizeof(info-&gt;header), info-&gt;length, info-&gt;header.width, info-&gt;header.height, depth);
+		fprintf(stderr, &quot;createAbstractFileFromIBootIM: decompression error\n&quot;);
 		free(compressed);
 		free(info);
 		return NULL;
 	} else if(length &lt; info-&gt;length) {
+		fprintf(stderr, &quot;createAbstractFileFromIBootIM: (warning) uncompressed data shorter than expected: %d\n&quot;, length);
 		info-&gt;length = length;
 	}
 
@@ -192,7 +193,7 @@ void pngError(png_structp png_ptr, png_const_charp error_msg) {
 	exit(0);
 }
 
-void* replaceBootImage(AbstractFile* imageWrapper, AbstractFile* png, size_t *fileSize) {
+void* replaceBootImage(AbstractFile* imageWrapper, const unsigned int* key, const unsigned int* iv, AbstractFile* png, size_t *fileSize) {
 	AbstractFile* imageFile;
 	unsigned char header[8];
 	InfoIBootIM* info;
@@ -252,7 +253,7 @@ void* replaceBootImage(AbstractFile* imageWrapper, AbstractFile* png, size_t *fi
 		printf(&quot;notice: attempting to expand palette into full rgb\n&quot;);
 	}
 	
-  png_set_expand(png_ptr);
+	png_set_expand(png_ptr);
 	png_set_strip_16(png_ptr);
 	png_set_bgr(png_ptr);
 	png_set_add_alpha(png_ptr, 0xff, PNG_FILLER_AFTER);
@@ -292,13 +293,17 @@ void* replaceBootImage(AbstractFile* imageWrapper, AbstractFile* png, size_t *fi
 		row_pointers[i] = imageBuffer + (info_ptr-&gt;rowbytes * i);
 	}
 
-  png_read_image(png_ptr, row_pointers);
+	png_read_image(png_ptr, row_pointers);
 	png_read_end(png_ptr, end_info);
 	
 	buffer = malloc(1);
 	*fileSize = 0;
-	
-	imageFile = duplicateAbstractFile(imageWrapper, createAbstractFileFromMemoryFile((void**)&amp;buffer, fileSize));
+
+	if(key != NULL) {
+		imageFile = duplicateAbstractFile2(imageWrapper, createAbstractFileFromMemoryFile((void**)&amp;buffer, fileSize), key, iv, NULL);
+	} else {	
+		imageFile = duplicateAbstractFile(imageWrapper, createAbstractFileFromMemoryFile((void**)&amp;buffer, fileSize));
+	}
 	info = (InfoIBootIM*) (imageFile-&gt;data);
 	
 	info-&gt;header.width = (uint16_t) info_ptr-&gt;width;</diff>
      <filename>ipsw-patch/ibootim.c</filename>
    </modified>
    <modified>
      <diff>@@ -31,8 +31,8 @@ size_t writeImg3(AbstractFile* file, const void* data, size_t len) {
 	while((info-&gt;offset + (size_t)len) &gt; info-&gt;data-&gt;header-&gt;dataSize) {
 		info-&gt;data-&gt;header-&gt;dataSize = info-&gt;offset + (size_t)len;
 		info-&gt;data-&gt;header-&gt;size = info-&gt;data-&gt;header-&gt;dataSize + sizeof(AppleImg3Header);
-		if(info-&gt;data-&gt;header-&gt;size % 4 != 0) {
-			info-&gt;data-&gt;header-&gt;size += 4 - (info-&gt;data-&gt;header-&gt;size % 4);
+		if(info-&gt;data-&gt;header-&gt;size % 0x4 != 0) {
+			info-&gt;data-&gt;header-&gt;size += 0x4 - (info-&gt;data-&gt;header-&gt;size % 0x4);
 		}
 		info-&gt;data-&gt;data = realloc(info-&gt;data-&gt;data, info-&gt;data-&gt;header-&gt;dataSize);
 	}
@@ -68,7 +68,7 @@ void closeImg3(AbstractFile* file) {
 		if(info-&gt;encrypted) {
 			uint8_t ivec[16];
 			memcpy(ivec, info-&gt;iv, 16);
-			AES_cbc_encrypt(info-&gt;data-&gt;data, info-&gt;data-&gt;data, info-&gt;data-&gt;header-&gt;size - sizeof(AppleImg3Header), &amp;(info-&gt;encryptKey), ivec, AES_ENCRYPT);
+			AES_cbc_encrypt(info-&gt;data-&gt;data, info-&gt;data-&gt;data, (info-&gt;data-&gt;header-&gt;dataSize / 16) * 16, &amp;(info-&gt;encryptKey), ivec, AES_ENCRYPT);
 		}
 
 		info-&gt;file-&gt;seek(info-&gt;file, 0);
@@ -83,18 +83,24 @@ void closeImg3(AbstractFile* file) {
 	free(file);
 }
 
-void setKeyImg3(AbstractFile2* file, const uint8_t* key, const uint8_t* iv) {
+void setKeyImg3(AbstractFile2* file, const unsigned int* key, const unsigned int* iv) {
 	Img3Info* info = (Img3Info*) file-&gt;super.data;
 
-	AES_set_encrypt_key(key, 128, &amp;(info-&gt;encryptKey));
-	AES_set_decrypt_key(key, 128, &amp;(info-&gt;decryptKey));
+	int i;
+	uint8_t bKey[16];
 
-	memcpy(info-&gt;iv, iv, 16);
+	for(i = 0; i &lt; 16; i++) {
+		bKey[i] = key[i] &amp; 0xff;
+		info-&gt;iv[i] = iv[i] &amp; 0xff;
+	}
+
+	AES_set_encrypt_key(bKey, 128, &amp;(info-&gt;encryptKey));
+	AES_set_decrypt_key(bKey, 128, &amp;(info-&gt;decryptKey));
 
 	if(!info-&gt;encrypted) {
 		uint8_t ivec[16];
 		memcpy(ivec, info-&gt;iv, 16);
-		AES_cbc_encrypt(info-&gt;data-&gt;data, info-&gt;data-&gt;data, info-&gt;data-&gt;header-&gt;size - sizeof(AppleImg3Header), &amp;(info-&gt;decryptKey), ivec, AES_DECRYPT);
+		AES_cbc_encrypt(info-&gt;data-&gt;data, info-&gt;data-&gt;data, (info-&gt;data-&gt;header-&gt;dataSize / 16) * 16, &amp;(info-&gt;decryptKey), ivec, AES_DECRYPT);
 	}
 
 	info-&gt;encrypted = TRUE;
@@ -194,22 +200,18 @@ void writeImg3Root(AbstractFile* file, Img3Element* element) {
 }
 
 void writeImg3Default(AbstractFile* file, Img3Element* element) {
+	const char zeros[0x10] = {0};
 	file-&gt;write(file, element-&gt;data, element-&gt;header-&gt;dataSize);
+	if((element-&gt;header-&gt;size - sizeof(AppleImg3Header)) &gt; element-&gt;header-&gt;dataSize) {
+		file-&gt;write(file, zeros, (element-&gt;header-&gt;size - sizeof(AppleImg3Header)) - element-&gt;header-&gt;dataSize);
+	}
 }
 
 void writeImg3Element(AbstractFile* file, Img3Element* element) {
 	off_t curPos;
-	char zero;
-
-	zero = '\0';
 
 	curPos = file-&gt;tell(file);
 
-	file-&gt;seek(file, curPos + element-&gt;header-&gt;size - 1);
-	file-&gt;write(file, &amp;zero, 1);
-
-	file-&gt;seek(file, curPos);
-
 	flipAppleImg3Header(element-&gt;header);
 	file-&gt;write(file, element-&gt;header, sizeof(AppleImg3Header));
 	flipAppleImg3Header(element-&gt;header);
@@ -267,6 +269,8 @@ AbstractFile* createAbstractFileFromImg3(AbstractFile* file) {
 	info-&gt;root = readImg3Element(file);
 
 	info-&gt;data = NULL;
+	info-&gt;cert = NULL;
+	info-&gt;kbag = NULL;
 	info-&gt;encrypted = FALSE;
 
 	current = (Img3Element*) info-&gt;root-&gt;data;
@@ -277,6 +281,9 @@ AbstractFile* createAbstractFileFromImg3(AbstractFile* file) {
 		if(current-&gt;header-&gt;magic == IMG3_CERT_MAGIC) {
 			info-&gt;cert = current;
 		}
+		if(current-&gt;header-&gt;magic == IMG3_KBAG_MAGIC) {
+			info-&gt;kbag = current;
+		}
 		current = current-&gt;next;
 	}
 
@@ -297,6 +304,23 @@ AbstractFile* createAbstractFileFromImg3(AbstractFile* file) {
 	AbstractFile2* abstractFile2 = (AbstractFile2*) toReturn;
 	abstractFile2-&gt;setKey = setKeyImg3;
 
+	if(info-&gt;kbag) {
+		uint8_t* keySeed;
+		uint32_t keySeedLen;
+		keySeedLen = 2 * (((AppleImg3KBAGHeader*)info-&gt;kbag-&gt;data)-&gt;key_bits)/8;
+		keySeed = (uint8_t*) malloc(keySeedLen);
+		memcpy(keySeed, (uint8_t*)((AppleImg3KBAGHeader*)info-&gt;kbag-&gt;data) + sizeof(AppleImg3KBAGHeader), keySeedLen);
+		printf(&quot;{&quot;);
+		int i = 0;
+		for(i = 0; i &lt; keySeedLen; i++) {
+			if(i != 0)
+				printf(&quot;, &quot;);
+
+			printf(&quot;0x%02x&quot;, keySeed[i]);
+		}
+		printf(&quot;}\n&quot;);
+	}
+
 	return toReturn;
 }
 </diff>
      <filename>ipsw-patch/img3.c</filename>
    </modified>
    <modified>
      <diff>@@ -63,8 +63,9 @@ void closeComp(AbstractFile* file) {
 		
 		info-&gt;file-&gt;seek(info-&gt;file, sizeof(info-&gt;header));
 		info-&gt;file-&gt;write(info-&gt;file, compressed, info-&gt;header.length_compressed);
+
 		free(compressed);
-			
+
 		flipCompHeader(&amp;(info-&gt;header));
 		info-&gt;file-&gt;seek(info-&gt;file, 0);
 		info-&gt;file-&gt;write(info-&gt;file, &amp;(info-&gt;header), sizeof(info-&gt;header));
@@ -104,12 +105,16 @@ AbstractFile* createAbstractFileFromComp(AbstractFile* file) {
 	info-&gt;buffer = malloc(info-&gt;header.length_uncompressed);
 	compressed = malloc(info-&gt;header.length_compressed);
 	file-&gt;read(file, compressed, info-&gt;header.length_compressed);
-	
-	if(decompress_lzss(info-&gt;buffer, compressed, info-&gt;header.length_compressed) != info-&gt;header.length_uncompressed) {
+
+	uint32_t real_uncompressed = decompress_lzss(info-&gt;buffer, compressed, info-&gt;header.length_compressed);
+	if(real_uncompressed != info-&gt;header.length_uncompressed) {
+		printf(&quot;mismatch: %d %d %d %x %x\n&quot;, info-&gt;header.length_compressed, real_uncompressed, info-&gt;header.length_uncompressed, compressed[info-&gt;header.length_compressed - 2], compressed[info-&gt;header.length_compressed - 1]);
 		free(compressed);
 		free(info);
 		return NULL;
 	}
+
+	printf(&quot;match: %d %d %d %x %x\n&quot;, info-&gt;header.length_compressed, real_uncompressed, info-&gt;header.length_uncompressed, compressed[info-&gt;header.length_compressed - 2], compressed[info-&gt;header.length_compressed - 1]);
 	
 	free(compressed);
 </diff>
      <filename>ipsw-patch/lzssfile.c</filename>
    </modified>
    <modified>
      <diff>@@ -45,6 +45,10 @@ int main(int argc, char* argv[]) {
 	size_t rootSize;
 	
 	char* ramdiskFSPathInIPSW;
+	unsigned int ramdiskKey[16];
+	unsigned int ramdiskIV[16];
+	unsigned int* pRamdiskKey = NULL;
+	unsigned int* pRamdiskIV = NULL;
 	io_func* ramdiskFS;
 	Volume* ramdiskVolume;
 	
@@ -61,32 +65,27 @@ int main(int argc, char* argv[]) {
 	void* imageBuffer;	
 	size_t imageSize;
 
-	AbstractFile* bootloader39;
-	AbstractFile* bootloader46;
-	AbstractFile* applelogo;
-	AbstractFile* recoverymode;
+	AbstractFile* bootloader39 = NULL;
+	AbstractFile* bootloader46 = NULL;
+	AbstractFile* applelogo = NULL;
+	AbstractFile* recoverymode = NULL;
+
+	char noWipe = FALSE;
 	
-	char unlockBaseband;
-	char selfDestruct;
-	char use39;
-	char use46;
-	char doBootNeuter;
-	char noBB;
-
-	applelogo = NULL;
-	recoverymode = NULL;
-	bootloader39 = NULL;
-	bootloader46 = NULL;
-
-	unlockBaseband = FALSE;
-	selfDestruct = FALSE;
-	use39 = FALSE;
-	use46 = FALSE;
-	doBootNeuter = FALSE;
-	noBB = FALSE;
+	char unlockBaseband = FALSE;
+	char selfDestruct = FALSE;
+	char use39 = FALSE;
+	char use46 = FALSE;
+	char doBootNeuter = FALSE;
+
+	unsigned int key[16];
+	unsigned int iv[16];
+
+	unsigned int* pKey = NULL;
+	unsigned int* pIV = NULL;
 
 	if(argc &lt; 3) {
-		printf(&quot;usage %s &lt;input.ipsw&gt; &lt;target.ipsw&gt; [-b &lt;bootimage.png&gt;] [-r &lt;recoveryimage.png&gt;] [-e \&quot;&lt;action to exclude&gt;\&quot;] [-nobbupdate] [[-unlock] [-use39] [-use46] [-cleanup] -3 &lt;bootloader 3.9 file&gt; -4 &lt;bootloader 4.6 file&gt;] &lt;path/to/merge1&gt; &lt;path/to/merge2&gt;...\n&quot;, argv[0]);
+		printf(&quot;usage %s &lt;input.ipsw&gt; &lt;target.ipsw&gt; [-b &lt;bootimage.png&gt;] [-r &lt;recoveryimage.png&gt;] [-nowipe] [-e \&quot;&lt;action to exclude&gt;\&quot;] [[-unlock] [-use39] [-use46] [-cleanup] -3 &lt;bootloader 3.9 file&gt; -4 &lt;bootloader 4.6 file&gt;] &lt;package1.tar&gt; &lt;package2.tar&gt;...\n&quot;, argv[0]);
 		return 0;
 	}
 
@@ -104,6 +103,10 @@ int main(int argc, char* argv[]) {
 			break;
 		}
 
+		if(strcmp(argv[i], &quot;-nowipe&quot;) == 0) {
+			noWipe = TRUE;
+		}
+
 		if(strcmp(argv[i], &quot;-e&quot;) == 0) {
 			removeKey(firmwarePatches, argv[i + 1]);
 			i++;
@@ -119,11 +122,6 @@ int main(int argc, char* argv[]) {
 			selfDestruct = TRUE;
 			continue;
 		}
-
-		if(strcmp(argv[i], &quot;-nobbupdate&quot;) == 0) {
-			noBB = TRUE;
-			continue;
-		}
 		
 		if(strcmp(argv[i], &quot;-use39&quot;) == 0) {
 			if(use46) {
@@ -185,16 +183,11 @@ int main(int argc, char* argv[]) {
 	}
 	
 	if(use39 || use46 || unlockBaseband || selfDestruct || bootloader39 || bootloader46) {
-		if(noBB) {
-			printf(&quot;error: bbupdate must be enabled for bootneuter\n&quot;);
+		if(!(bootloader39) || !(bootloader46)) {
+			printf(&quot;error: you must specify both bootloader files.\n&quot;);
 			exit(1);
 		} else {
-			if(!(bootloader39) || !(bootloader46)) {
-				printf(&quot;error: you must specify both bootloader files.\n&quot;);
-				exit(1);
-			} else {
-				doBootNeuter = TRUE;
-			}
+			doBootNeuter = TRUE;
 		}
 	}
 
@@ -206,15 +199,44 @@ int main(int argc, char* argv[]) {
 	while(patchDict != NULL) {
 		fileValue = (StringValue*) getValueByKey(patchDict, &quot;File&quot;);
 
+		StringValue* keyValue = (StringValue*) getValueByKey(patchDict, &quot;Key&quot;);
+		StringValue* ivValue = (StringValue*) getValueByKey(patchDict, &quot;IV&quot;);
+		pKey = NULL;
+		pIV = NULL;
+
+		if(keyValue) {
+			sscanf(keyValue-&gt;value, &quot;%2x%2x%2x%2x%2x%2x%2x%2x%2x%2x%2x%2x%2x%2x%2x%2x&quot;,
+				&amp;key[0], &amp;key[1], &amp;key[2], &amp;key[3], &amp;key[4], &amp;key[5], &amp;key[6], &amp;key[7], &amp;key[8],
+				&amp;key[9], &amp;key[10], &amp;key[11], &amp;key[12], &amp;key[13], &amp;key[14], &amp;key[15]);
+
+			pKey = key;
+		}
+
+		if(ivValue) {
+			sscanf(ivValue-&gt;value, &quot;%2x%2x%2x%2x%2x%2x%2x%2x%2x%2x%2x%2x%2x%2x%2x%2x&quot;,
+				&amp;iv[0], &amp;iv[1], &amp;iv[2], &amp;iv[3], &amp;iv[4], &amp;iv[5], &amp;iv[6], &amp;iv[7], &amp;iv[8],
+				&amp;iv[9], &amp;iv[10], &amp;iv[11], &amp;iv[12], &amp;iv[13], &amp;iv[14], &amp;iv[15]);
+			pIV = iv;
+		}
+
 		if(strcmp(patchDict-&gt;dValue.key, &quot;Restore Ramdisk&quot;) == 0) {
 			ramdiskFSPathInIPSW = fileValue-&gt;value;
+			if(pKey) {
+				memcpy(ramdiskKey, key, sizeof(key));
+				memcpy(ramdiskIV, iv, sizeof(iv));
+				pRamdiskKey = ramdiskKey;
+				pRamdiskIV = ramdiskIV;
+			} else {
+				pRamdiskKey = NULL;
+				pRamdiskIV = NULL;
+			}
 		}
 
 		patchValue = (StringValue*) getValueByKey(patchDict, &quot;Patch2&quot;);
 		if(patchValue) {
-			if(!noBB) {
+			if(noWipe) {
 				printf(&quot;%s: &quot;, patchDict-&gt;dValue.key); fflush(stdout);
-				doPatch(patchValue, fileValue, bundlePath, &amp;outputState);
+				doPatch(patchValue, fileValue, bundlePath, &amp;outputState, pKey, pIV);
 				patchDict = (Dictionary*) patchDict-&gt;dValue.next;
 				continue; /* skip over the normal Patch */
 			}
@@ -223,18 +245,18 @@ int main(int argc, char* argv[]) {
 		patchValue = (StringValue*) getValueByKey(patchDict, &quot;Patch&quot;);
 		if(patchValue) {
 			printf(&quot;%s: &quot;, patchDict-&gt;dValue.key); fflush(stdout);
-			doPatch(patchValue, fileValue, bundlePath, &amp;outputState);
+			doPatch(patchValue, fileValue, bundlePath, &amp;outputState, pKey, pIV);
 		}
 		
 		if(strcmp(patchDict-&gt;dValue.key, &quot;AppleLogo&quot;) == 0 &amp;&amp; applelogo) {
 			printf(&quot;replacing %s\n&quot;, fileValue-&gt;value); fflush(stdout);
-			ASSERT((imageBuffer = replaceBootImage(getFileFromOutputState(&amp;outputState, fileValue-&gt;value), applelogo, &amp;imageSize)) != NULL, &quot;failed to use new image&quot;);
+			ASSERT((imageBuffer = replaceBootImage(getFileFromOutputState(&amp;outputState, fileValue-&gt;value), pKey, pIV, applelogo, &amp;imageSize)) != NULL, &quot;failed to use new image&quot;);
 			addToOutput(&amp;outputState, fileValue-&gt;value, imageBuffer, imageSize);
 		}
 
 		if(strcmp(patchDict-&gt;dValue.key, &quot;RecoveryMode&quot;) == 0 &amp;&amp; recoverymode) {
 			printf(&quot;replacing %s\n&quot;, fileValue-&gt;value); fflush(stdout);
-			ASSERT((imageBuffer = replaceBootImage(getFileFromOutputState(&amp;outputState, fileValue-&gt;value), recoverymode, &amp;imageSize)) != NULL, &quot;failed to use new image&quot;);
+			ASSERT((imageBuffer = replaceBootImage(getFileFromOutputState(&amp;outputState, fileValue-&gt;value), pKey, pIV, recoverymode, &amp;imageSize)) != NULL, &quot;failed to use new image&quot;);
 			addToOutput(&amp;outputState, fileValue-&gt;value, imageBuffer, imageSize);
 		}
 		
@@ -244,8 +266,9 @@ int main(int argc, char* argv[]) {
 	fileValue = (StringValue*) getValueByKey(info, &quot;RootFilesystem&quot;);
 	rootFSPathInIPSW = fileValue-&gt;value;
 		
-	sscanf(((StringValue*) getValueByKey(info, &quot;RootFilesystemResize&quot;))-&gt;value, &quot;%d&quot;, &amp;rootSize);
+	rootSize = ((IntegerValue*) getValueByKey(info, &quot;RootFilesystemSize&quot;))-&gt;value;
 	rootSize *= 1024 * 1024;
+	rootSize -= 47438 * 512;
 	buffer = malloc(rootSize);
 
 	extractDmg(
@@ -255,7 +278,7 @@ int main(int argc, char* argv[]) {
 	
 	rootFS = IOFuncFromAbstractFile(createAbstractFileFromMemoryFile((void**)&amp;buffer, &amp;rootSize));
 	rootVolume = openVolume(rootFS);
-	printf(&quot;Growing root: %d\n&quot;, rootSize); fflush(stdout);
+	printf(&quot;Growing root: %ld\n&quot;, (long) rootSize); fflush(stdout);
 	grow_hfs(rootVolume, rootSize);
 	
 	firmwarePatches = (Dictionary*)getValueByKey(info, &quot;FilesystemPatches&quot;);
@@ -287,11 +310,23 @@ int main(int argc, char* argv[]) {
 	}
 	
 	for(; mergePaths &lt; argc; mergePaths++) {
-		addall_hfs(rootVolume, argv[mergePaths], &quot;/&quot;);
+		printf(&quot;merging %s\n&quot;, argv[mergePaths]);
+		AbstractFile* tarFile = createAbstractFileFromFile(fopen(argv[mergePaths], &quot;rb&quot;));
+		hfs_untar(rootVolume, tarFile);
+		tarFile-&gt;close(tarFile);
 	}
 	
 	if(doBootNeuter) {
-		ramdiskFS = IOFuncFromAbstractFile(openAbstractFile(getFileFromOutputState(&amp;outputState, ramdiskFSPathInIPSW)));
+		if(pRamdiskKey) {
+			printf(&quot;%p: %02hhx%02hhx%02hhx%02hhx%02hhx%02hhx%02hhx%02hhx%02hhx%02hhx%02hhx%02hhx%02hhx%02hhx%02hhx%02hhx\n&quot;,
+				pRamdiskKey, pRamdiskKey[0], pRamdiskKey[1], pRamdiskKey[2], pRamdiskKey[3], pRamdiskKey[4], pRamdiskKey[5], pRamdiskKey[6], pRamdiskKey[7],
+				pRamdiskKey[8], pRamdiskKey[9], pRamdiskKey[10], pRamdiskKey[11], pRamdiskKey[12], pRamdiskKey[13], pRamdiskKey[14], pRamdiskKey[15]);
+
+			ramdiskFS = IOFuncFromAbstractFile(openAbstractFile2(getFileFromOutputState(&amp;outputState, ramdiskFSPathInIPSW), pRamdiskKey, pRamdiskIV));
+		} else {
+			printf(&quot;unencrypted ramdisk\n&quot;);
+			ramdiskFS = IOFuncFromAbstractFile(openAbstractFile(getFileFromOutputState(&amp;outputState, ramdiskFSPathInIPSW)));
+		}
 		ramdiskVolume = openVolume(ramdiskFS);
 		firmwarePatches = (Dictionary*)getValueByKey(info, &quot;BasebandPatches&quot;);
 		if(firmwarePatches != NULL) {</diff>
      <filename>ipsw-patch/main.c</filename>
    </modified>
    <modified>
      <diff>@@ -67,7 +67,7 @@ AbstractFile* duplicateAbstractFile(AbstractFile* file, AbstractFile* backing) {
 	}
 }
 
-AbstractFile* openAbstractFile2(AbstractFile* file, const uint8_t* key, const uint8_t* iv) {
+AbstractFile* openAbstractFile2(AbstractFile* file, const unsigned int* key, const unsigned int* iv) {
 	uint32_t signatureBE;
 	uint32_t signatureLE;
 
@@ -98,7 +98,7 @@ AbstractFile* openAbstractFile2(AbstractFile* file, const uint8_t* key, const ui
 	}
 }
 
-AbstractFile* duplicateAbstractFileWithCertificate(AbstractFile* file, AbstractFile* backing, AbstractFile* certificate) {
+AbstractFile* duplicateAbstractFile2(AbstractFile* file, AbstractFile* backing, const unsigned int* key, const unsigned int* iv, AbstractFile* certificate) {
 	uint32_t signatureBE;
 	uint32_t signatureLE;
 	AbstractFile* orig;
@@ -114,16 +114,24 @@ AbstractFile* duplicateAbstractFileWithCertificate(AbstractFile* file, AbstractF
 	if(signatureBE == SIGNATURE_8900) {
 		orig = createAbstractFileFrom8900(file);
 		newFile = duplicate8900File(orig, backing);
-		replaceCertificate8900(newFile, certificate);
+		if(certificate != NULL)
+			replaceCertificate8900(newFile, certificate);
 		return duplicateAbstractFile(orig, newFile);
 	} else if(signatureLE == IMG2_SIGNATURE) {
 		orig = createAbstractFileFromImg2(file);
 		return duplicateAbstractFile(orig, duplicateImg2File(orig, backing));
 	} else if(signatureLE == IMG3_SIGNATURE) {
-		orig = createAbstractFileFromImg3(file);
-		newFile = duplicateImg3File(orig, backing);
-		replaceCertificateImg3(newFile, certificate);
-		return duplicateAbstractFile(orig, newFile);
+		AbstractFile2* img3 = (AbstractFile2*) createAbstractFileFromImg3(file);
+		if(key != NULL)
+			img3-&gt;setKey(img3, key, iv);
+
+		AbstractFile2* newFile = (AbstractFile2*) duplicateImg3File((AbstractFile*) img3, backing);
+		if(key != NULL)
+			img3-&gt;setKey(newFile, key, iv);
+
+		if(certificate != NULL)
+			replaceCertificateImg3((AbstractFile*) newFile, certificate);
+		return duplicateAbstractFile((AbstractFile*) img3, (AbstractFile*) newFile);
 	} else if(signatureBE == COMP_SIGNATURE) {
 		orig = createAbstractFileFromComp(file);
 		return duplicateAbstractFile(orig, duplicateCompFile(orig, backing));</diff>
      <filename>ipsw-patch/nor_files.c</filename>
    </modified>
    <modified>
      <diff>@@ -141,7 +141,7 @@ void writeOutput(OutputState** state, char* ipsw) {
 	while(next != NULL) {
 		curFile = next;
 		next = next-&gt;next;
-		printf(&quot;packing: %s (%d)\n&quot;, curFile-&gt;fileName, curFile-&gt;bufferSize); fflush(stdout);
+		printf(&quot;packing: %s (%ld)\n&quot;, curFile-&gt;fileName, (long) curFile-&gt;bufferSize); fflush(stdout);
 		
 		if(curFile-&gt;bufferSize &gt; 0) {
 			ASSERT(zipOpenNewFileInZip(zip, curFile-&gt;fileName, &amp;info, NULL, 0, NULL, 0, NULL, Z_DEFLATED, Z_DEFAULT_COMPRESSION) == 0, &quot;error adding to zip&quot;);
@@ -206,3 +206,31 @@ OutputState* loadZip(const char* ipsw) {
 	return toReturn;
 }
 
+void loadZipFile(const char* ipsw, OutputState** output, const char* file) {
+	char* fileName;
+	void* buffer;
+	unzFile zip;
+	unz_file_info pfile_info;
+
+	ASSERT(zip = unzOpen(ipsw), &quot;cannot open input ipsw&quot;);
+	ASSERT(unzGoToFirstFile(zip) == UNZ_OK, &quot;cannot seek to first file in input ipsw&quot;);
+
+	do {
+		ASSERT(unzGetCurrentFileInfo(zip, &amp;pfile_info, NULL, 0, NULL, 0, NULL, 0) == UNZ_OK, &quot;cannot get current file info from ipsw&quot;);
+		fileName = (char*) malloc(pfile_info.size_filename + 1);
+		ASSERT(unzGetCurrentFileInfo(zip, NULL, fileName, pfile_info.size_filename + 1, NULL, 0, NULL, 0) == UNZ_OK, &quot;cannot get current file name from ipsw&quot;);
+		if(strcmp(fileName, file) == 0) {
+			buffer = malloc((pfile_info.uncompressed_size &gt; 0) ? pfile_info.uncompressed_size : 1);
+			printf(&quot;loading: %s (%ld)\n&quot;, fileName, pfile_info.uncompressed_size); fflush(stdout);
+			ASSERT(unzOpenCurrentFile(zip) == UNZ_OK, &quot;cannot open compressed file in IPSW&quot;);
+			ASSERT(unzReadCurrentFile(zip, buffer, pfile_info.uncompressed_size) == pfile_info.uncompressed_size, &quot;cannot read file from ipsw&quot;);
+			ASSERT(unzCloseCurrentFile(zip) == UNZ_OK, &quot;cannot close compressed file in IPSW&quot;);
+			addToOutput(output, fileName, buffer, pfile_info.uncompressed_size);
+		}
+		free(fileName);
+	} while(unzGoToNextFile(zip) == UNZ_OK);
+
+	ASSERT(unzClose(zip) == UNZ_OK, &quot;cannot close input ipsw file&quot;);
+}
+
+</diff>
      <filename>ipsw-patch/outputstate.c</filename>
    </modified>
    <modified>
      <diff>@@ -27,7 +27,7 @@ Dictionary* parseIPSW(const char* inputIPSW, const char* bundleRoot, char** bund
 	DIR* dir;
 	struct dirent* ent;
 	StringValue* plistSHA1String;
-	char plistHash[20];
+	unsigned char plistHash[20];
 	int i;
 
 	*bundlePath = NULL;
@@ -48,7 +48,7 @@ Dictionary* parseIPSW(const char* inputIPSW, const char* bundleRoot, char** bund
 
 	fclose(inputIPSWFile);
 
-	printf(&quot;Matching IPSW...\n&quot;);
+	printf(&quot;Matching IPSW... (%02hhx%02hhx%02hhx%02hhx...)\n&quot;, hash[0], hash[1], hash[2], hash[3]);
 
 	dir = opendir(bundleRoot);
 	if(dir == NULL) {
@@ -64,6 +64,7 @@ Dictionary* parseIPSW(const char* inputIPSW, const char* bundleRoot, char** bund
 		strcpy(infoPath, bundleRoot);
 		strcat(infoPath, ent-&gt;d_name);
 		strcat(infoPath, &quot;/Info.plist&quot;);
+		printf(&quot;checking: %s\n&quot;, infoPath);
 
 		if((plistFile = createAbstractFileFromFile(fopen(infoPath, &quot;rb&quot;))) != NULL) {
 			plist = (char*) malloc(plistFile-&gt;getLength(plistFile));
@@ -81,7 +82,7 @@ Dictionary* parseIPSW(const char* inputIPSW, const char* bundleRoot, char** bund
 					&amp;plistHash[15], &amp;plistHash[16], &amp;plistHash[17], &amp;plistHash[18], &amp;plistHash[19]);
 
 				for(i = 0; i &lt; 20; i++) {
-					if(plistHash[0] != hash[0]) {
+					if(plistHash[i] != hash[i]) {
 						break;
 					}
 				}
@@ -113,7 +114,7 @@ Dictionary* parseIPSW(const char* inputIPSW, const char* bundleRoot, char** bund
 	return info;
 }
 
-int doPatch(StringValue* patchValue, StringValue* fileValue, const char* bundlePath, OutputState** state) {
+int doPatch(StringValue* patchValue, StringValue* fileValue, const char* bundlePath, OutputState** state, unsigned int* key, unsigned int* iv) {
 	char* patchPath;
 	size_t bufferSize;
 	void* buffer;
@@ -135,9 +136,27 @@ int doPatch(StringValue* patchValue, StringValue* fileValue, const char* bundleP
 	
 	bufferSize = 0;
 
-	out = duplicateAbstractFile(getFileFromOutputState(state, fileValue-&gt;value), createAbstractFileFromMemoryFile((void**)&amp;buffer, &amp;bufferSize));
-	
-	file = openAbstractFile(getFileFromOutputState(state, fileValue-&gt;value));
+	if(key != NULL) {
+		printf(&quot;\n%p: %02hhx%02hhx%02hhx%02hhx%02hhx%02hhx%02hhx%02hhx%02hhx%02hhx%02hhx%02hhx%02hhx%02hhx%02hhx%02hhx\n&quot;,
+			key, key[0], key[1], key[2], key[3], key[4], key[5], key[6], key[7], key[8], key[9], key[10], key[11], key[12], key[13], key[14], key[15]);
+
+		printf(&quot;%02hhx%02hhx%02hhx%02hhx%02hhx%02hhx%02hhx%02hhx%02hhx%02hhx%02hhx%02hhx%02hhx%02hhx%02hhx%02hhx\n&quot;,
+			iv[0], iv[1], iv[2], iv[3], iv[4], iv[5], iv[6], iv[7], iv[8], iv[9], iv[10], iv[11], iv[12], iv[13], iv[14], iv[15]);
+	}
+
+	if(key != NULL) {
+		printf(&quot;encrypted input... &quot;);
+		out = duplicateAbstractFile2(getFileFromOutputState(state, fileValue-&gt;value), createAbstractFileFromMemoryFile((void**)&amp;buffer, &amp;bufferSize), key, iv, NULL);
+	} else {
+		out = duplicateAbstractFile(getFileFromOutputState(state, fileValue-&gt;value), createAbstractFileFromMemoryFile((void**)&amp;buffer, &amp;bufferSize));
+	}
+
+	if(key != NULL) {
+		printf(&quot;encrypted output... &quot;);
+		file = openAbstractFile2(getFileFromOutputState(state, fileValue-&gt;value), key, iv);
+	} else {
+		file = openAbstractFile(getFileFromOutputState(state, fileValue-&gt;value));
+	}
 	
 	if(!patchFile || !file || !out) {
 		printf(&quot;file error\n&quot;);
@@ -148,6 +167,13 @@ int doPatch(StringValue* patchValue, StringValue* fileValue, const char* bundleP
 		printf(&quot;patch failed\n&quot;);
 		exit(0);
 	}
+
+	if(strstr(fileValue-&gt;value, &quot;WTF.s5l8900xall.RELEASE&quot;)) {
+		printf(&quot;Exploiting 8900 vulnerability... ;)\n&quot;);
+		AbstractFile* exploited = createAbstractFileFrom8900(createAbstractFileFromMemoryFile((void**)&amp;buffer, &amp;bufferSize));
+		exploit8900(exploited);
+		exploited-&gt;close(exploited);
+	}
 	
 	printf(&quot;writing... &quot;); fflush(stdout);
 	
@@ -208,7 +234,7 @@ void doPatchInPlace(Volume* volume, const char* filePath, const char* patchPath)
 }
 
 void fixupBootNeuterArgs(Volume* volume, char unlockBaseband, char selfDestruct, char use39, char use46) {
-	char bootNeuterPlist[] = &quot;/System/Library/LaunchDaemons/com.devteam.bootneuter.auto.plist&quot;;
+	const char bootNeuterPlist[] = &quot;/System/Library/LaunchDaemons/com.devteam.bootneuter.auto.plist&quot;;
 	AbstractFile* plistFile;
 	char* plist;
 	Dictionary* info;
@@ -228,6 +254,8 @@ void fixupBootNeuterArgs(Volume* volume, char unlockBaseband, char selfDestruct,
 	arguments = (ArrayValue*) getValueByKey(info, &quot;ProgramArguments&quot;);
 	addStringToArray(arguments, &quot;-autoMode&quot;);
 	addStringToArray(arguments, &quot;YES&quot;);
+	addStringToArray(arguments, &quot;-RegisterForSystemEvents&quot;);
+	addStringToArray(arguments, &quot;YES&quot;);
 	
 	if(unlockBaseband) {
 		addStringToArray(arguments, &quot;-unlockBaseband&quot;);</diff>
      <filename>ipsw-patch/pwnutil.c</filename>
    </modified>
    <modified>
      <diff>@@ -16,8 +16,8 @@ int main(int argc, char* argv[]) {
 
 	AbstractFile* template = NULL;
 	AbstractFile* certificate = NULL;
-	uint8_t key[16];
-	uint8_t iv[16];
+	unsigned int key[16];
+	unsigned int iv[16];
 	int hasKey = FALSE;
 	int hasIV = FALSE;
 
@@ -40,14 +40,14 @@ int main(int argc, char* argv[]) {
 		}
 
 		if(strcmp(argv[argNo], &quot;-k&quot;) == 0 &amp;&amp; (argNo + 1) &lt; argc) {
-			sscanf(argv[argNo + 1], &quot;%2hhx%2hhx%2hhx%2hhx%2hhx%2hhx%2hhx%2hhx%2hhx%2hhx%2hhx%2hhx%2hhx%2hhx%2hhx%2hhx&quot;,
+			sscanf(argv[argNo + 1], &quot;%2x%2x%2x%2x%2x%2x%2x%2x%2x%2x%2x%2x%2x%2x%2x%2x&quot;,
 				&amp;key[0], &amp;key[1], &amp;key[2], &amp;key[3], &amp;key[4], &amp;key[5], &amp;key[6], &amp;key[7], &amp;key[8],
 				&amp;key[9], &amp;key[10], &amp;key[11], &amp;key[12], &amp;key[13], &amp;key[14], &amp;key[15]);
 			hasKey = TRUE;
 		}
 
 		if(strcmp(argv[argNo], &quot;-iv&quot;) == 0 &amp;&amp; (argNo + 1) &lt; argc) {
-			sscanf(argv[argNo + 1], &quot;%2hhx%2hhx%2hhx%2hhx%2hhx%2hhx%2hhx%2hhx%2hhx%2hhx%2hhx%2hhx%2hhx%2hhx%2hhx%2hhx&quot;,
+			sscanf(argv[argNo + 1], &quot;%2x%2x%2x%2x%2x%2x%2x%2x%2x%2x%2x%2x%2x%2x%2x%2x&quot;,
 				&amp;iv[0], &amp;iv[1], &amp;iv[2], &amp;iv[3], &amp;iv[4], &amp;iv[5], &amp;iv[6], &amp;iv[7], &amp;iv[8],
 				&amp;iv[9], &amp;iv[10], &amp;iv[11], &amp;iv[12], &amp;iv[13], &amp;iv[14], &amp;iv[15]);
 			hasIV = TRUE;
@@ -77,10 +77,10 @@ int main(int argc, char* argv[]) {
 	AbstractFile* newFile;
 
 	if(template) {
-		if(certificate != NULL) {
-			newFile = duplicateAbstractFileWithCertificate(template, outFile, certificate);
+		if(hasKey) {
+			newFile = duplicateAbstractFile2(template, outFile, key, iv, certificate);
 		} else {
-			newFile = duplicateAbstractFile(template, outFile);
+			newFile = duplicateAbstractFile2(template, outFile, NULL, NULL, certificate);
 		}
 		if(!newFile) {
 			fprintf(stderr, &quot;error: cannot duplicate file from provided template\n&quot;);</diff>
      <filename>ipsw-patch/xpwntool.c</filename>
    </modified>
    <modified>
      <diff>@@ -607,11 +607,12 @@ local int unzlocal_GetCurrentFileInfoInternal (file,
 
 
     /* we check the magic */
-    if (err==UNZ_OK)
+    if (err==UNZ_OK) {
         if (unzlocal_getLong(&amp;s-&gt;z_filefunc, s-&gt;filestream,&amp;uMagic) != UNZ_OK)
             err=UNZ_ERRNO;
         else if (uMagic!=0x02014b50)
             err=UNZ_BADZIPFILE;
+    }
 
     if (unzlocal_getShort(&amp;s-&gt;z_filefunc, s-&gt;filestream,&amp;file_info.version) != UNZ_OK)
         err=UNZ_ERRNO;
@@ -687,11 +688,13 @@ local int unzlocal_GetCurrentFileInfoInternal (file,
         else
             uSizeRead = extraFieldBufferSize;
 
-        if (lSeek!=0)
+        if (lSeek!=0) {
             if (ZSEEK(s-&gt;z_filefunc, s-&gt;filestream,lSeek,ZLIB_FILEFUNC_SEEK_CUR)==0)
                 lSeek=0;
             else
                 err=UNZ_ERRNO;
+        }
+
         if ((file_info.size_file_extra&gt;0) &amp;&amp; (extraFieldBufferSize&gt;0))
             if (ZREAD(s-&gt;z_filefunc, s-&gt;filestream,extraField,uSizeRead)!=uSizeRead)
                 err=UNZ_ERRNO;
@@ -712,11 +715,12 @@ local int unzlocal_GetCurrentFileInfoInternal (file,
         else
             uSizeRead = commentBufferSize;
 
-        if (lSeek!=0)
+        if (lSeek!=0) {
             if (ZSEEK(s-&gt;z_filefunc, s-&gt;filestream,lSeek,ZLIB_FILEFUNC_SEEK_CUR)==0)
                 lSeek=0;
             else
                 err=UNZ_ERRNO;
+	}
         if ((file_info.size_file_comment&gt;0) &amp;&amp; (commentBufferSize&gt;0))
             if (ZREAD(s-&gt;z_filefunc, s-&gt;filestream,szComment,uSizeRead)!=uSizeRead)
                 err=UNZ_ERRNO;
@@ -976,11 +980,12 @@ local int unzlocal_CheckCurrentFileCoherencyHeader (s,piSizeVar,
         return UNZ_ERRNO;
 
 
-    if (err==UNZ_OK)
+    if (err==UNZ_OK) {
         if (unzlocal_getLong(&amp;s-&gt;z_filefunc, s-&gt;filestream,&amp;uMagic) != UNZ_OK)
             err=UNZ_ERRNO;
         else if (uMagic!=0x04034b50)
             err=UNZ_BADZIPFILE;
+    }
 
     if (unzlocal_getShort(&amp;s-&gt;z_filefunc, s-&gt;filestream,&amp;uData) != UNZ_OK)
         err=UNZ_ERRNO;
@@ -1534,7 +1539,6 @@ extern int ZEXPORT unzGetGlobalComment (file, szComment, uSizeBuf)
     char *szComment;
     uLong uSizeBuf;
 {
-    int err=UNZ_OK;
     unz_s* s;
     uLong uReadThis ;
     if (file==NULL)</diff>
      <filename>minizip/unzip.c</filename>
    </modified>
    <modified>
      <diff>@@ -189,13 +189,6 @@ local void init_linkedlist(ll)
     ll-&gt;first_block = ll-&gt;last_block = NULL;
 }
 
-local void free_linkedlist(ll)
-    linkedlist_data* ll;
-{
-    free_datablock(ll-&gt;first_block);
-    ll-&gt;first_block = ll-&gt;last_block = NULL;
-}
-
 
 local int add_data_in_datablock(ll,buf,len)
     linkedlist_data* ll;</diff>
      <filename>minizip/zip.c</filename>
    </modified>
    <modified>
      <diff>@@ -6,6 +6,7 @@
 #include &lt;xpwn/ibootim.h&gt;
 #include &quot;libibooter.h&quot;
 #include &lt;iostream&gt;
+#include &lt;string.h&gt;
 
 using namespace ibooter;
 using namespace std;
@@ -137,14 +138,14 @@ int main(int argc, char *argv[])
 		if(applelogo) {
 			fileValue = (StringValue*) getValueByKey((Dictionary*)getValueByKey((Dictionary*)getValueByKey(info, &quot;FirmwarePatches&quot;), &quot;AppleLogo&quot;), &quot;File&quot;);
 			printf(&quot;replacing %s\n&quot;, fileValue-&gt;value); fflush(stdout);
-			ASSERT((imageBuffer = replaceBootImage(getFileFromOutputState(&amp;ipswContents, fileValue-&gt;value), applelogo, &amp;imageSize)) != NULL, &quot;failed to use new image&quot;);
+			ASSERT((imageBuffer = replaceBootImage(getFileFromOutputState(&amp;ipswContents, fileValue-&gt;value), NULL, NULL, applelogo, &amp;imageSize)) != NULL, &quot;failed to use new image&quot;);
 			add_hfs(ramdiskVolume, createAbstractFileFromMemory(&amp;imageBuffer, imageSize), &quot;/ipwner/logo.img2&quot;);
 		}
 
 		if(recoverymode) {
 			fileValue = (StringValue*) getValueByKey((Dictionary*)getValueByKey((Dictionary*)getValueByKey(info, &quot;FirmwarePatches&quot;), &quot;RecoveryMode&quot;), &quot;File&quot;);
 			printf(&quot;replacing %s\n&quot;, fileValue-&gt;value); fflush(stdout);
-			ASSERT((imageBuffer = replaceBootImage(getFileFromOutputState(&amp;ipswContents, fileValue-&gt;value), recoverymode, &amp;imageSize)) != NULL, &quot;failed to use new image&quot;);
+			ASSERT((imageBuffer = replaceBootImage(getFileFromOutputState(&amp;ipswContents, fileValue-&gt;value), NULL, NULL, recoverymode, &amp;imageSize)) != NULL, &quot;failed to use new image&quot;);
 			add_hfs(ramdiskVolume, createAbstractFileFromMemory(&amp;imageBuffer, imageSize), &quot;/ipwner/recovery.img2&quot;);			
 		}
 </diff>
      <filename>xpwn/src/xpwn.cpp</filename>
    </modified>
  </modified>
  <removed type="array">
    <removed>
      <filename>Makefile</filename>
    </removed>
    <removed>
      <filename>dmg/Makefile</filename>
    </removed>
    <removed>
      <filename>hdutil/Makefile</filename>
    </removed>
    <removed>
      <filename>hfs/Makefile</filename>
    </removed>
    <removed>
      <filename>ipsw-patch/FirmwareBundles/iPhone1,1_1.1.4_4A102.bundle/022-3896-4.patch</filename>
    </removed>
    <removed>
      <filename>ipsw-patch/FirmwareBundles/iPhone1,1_1.1.4_4A102.bundle/022-3896-4_nobb.patch</filename>
    </removed>
    <removed>
      <filename>ipsw-patch/FirmwareBundles/iPhone1,1_1.1.4_4A102.bundle/022-3900-4.patch</filename>
    </removed>
    <removed>
      <filename>ipsw-patch/FirmwareBundles/iPhone1,1_1.1.4_4A102.bundle/022-3900-4_nobb.patch</filename>
    </removed>
    <removed>
      <filename>ipsw-patch/FirmwareBundles/iPhone1,1_1.1.4_4A102.bundle/DeviceTree.m68ap.patch</filename>
    </removed>
    <removed>
      <filename>ipsw-patch/FirmwareBundles/iPhone1,1_1.1.4_4A102.bundle/Info.plist</filename>
    </removed>
    <removed>
      <filename>ipsw-patch/FirmwareBundles/iPhone1,1_1.1.4_4A102.bundle/Services.plist.patch</filename>
    </removed>
    <removed>
      <filename>ipsw-patch/FirmwareBundles/iPhone1,1_1.1.4_4A102.bundle/bbupdater.patch</filename>
    </removed>
    <removed>
      <filename>ipsw-patch/FirmwareBundles/iPhone1,1_1.1.4_4A102.bundle/fstab.patch</filename>
    </removed>
    <removed>
      <filename>ipsw-patch/FirmwareBundles/iPhone1,1_1.1.4_4A102.bundle/iBEC.m68ap.RELEASE.patch</filename>
    </removed>
    <removed>
      <filename>ipsw-patch/FirmwareBundles/iPhone1,1_1.1.4_4A102.bundle/iBSS.m68ap.RELEASE.patch</filename>
    </removed>
    <removed>
      <filename>ipsw-patch/FirmwareBundles/iPhone1,1_1.1.4_4A102.bundle/iBoot.m68ap.RELEASE.patch</filename>
    </removed>
    <removed>
      <filename>ipsw-patch/FirmwareBundles/iPhone1,1_1.1.4_4A102.bundle/kernelcache.release.patch</filename>
    </removed>
    <removed>
      <filename>ipsw-patch/FirmwareBundles/iPhone1,1_1.1.4_4A102.bundle/lockdownd.patch</filename>
    </removed>
    <removed>
      <filename>ipsw-patch/FirmwareBundles/iPhone1,1_1.2.0_5A147p.bundle/022-3972-2.patch</filename>
    </removed>
    <removed>
      <filename>ipsw-patch/FirmwareBundles/iPhone1,1_1.2.0_5A147p.bundle/022-3972-2_nobb.patch</filename>
    </removed>
    <removed>
      <filename>ipsw-patch/FirmwareBundles/iPhone1,1_1.2.0_5A147p.bundle/DeviceTree.m68ap.patch</filename>
    </removed>
    <removed>
      <filename>ipsw-patch/FirmwareBundles/iPhone1,1_1.2.0_5A147p.bundle/Info.plist</filename>
    </removed>
    <removed>
      <filename>ipsw-patch/FirmwareBundles/iPhone1,1_1.2.0_5A147p.bundle/Services.plist.patch</filename>
    </removed>
    <removed>
      <filename>ipsw-patch/FirmwareBundles/iPhone1,1_1.2.0_5A147p.bundle/bbupdater.patch</filename>
    </removed>
    <removed>
      <filename>ipsw-patch/FirmwareBundles/iPhone1,1_1.2.0_5A147p.bundle/fstab.patch</filename>
    </removed>
    <removed>
      <filename>ipsw-patch/FirmwareBundles/iPhone1,1_1.2.0_5A147p.bundle/iBEC.m68ap.RELEASE.patch</filename>
    </removed>
    <removed>
      <filename>ipsw-patch/FirmwareBundles/iPhone1,1_1.2.0_5A147p.bundle/iBSS.m68ap.RELEASE.patch</filename>
    </removed>
    <removed>
      <filename>ipsw-patch/FirmwareBundles/iPhone1,1_1.2.0_5A147p.bundle/iBoot.m68ap.RELEASE.patch</filename>
    </removed>
    <removed>
      <filename>ipsw-patch/FirmwareBundles/iPhone1,1_1.2.0_5A147p.bundle/kernelcache.release.patch</filename>
    </removed>
    <removed>
      <filename>ipsw-patch/FirmwareBundles/iPhone1,1_1.2.0_5A147p.bundle/lockdownd.patch</filename>
    </removed>
    <removed>
      <filename>ipsw-patch/FirmwareBundles/iPhone1,1_1.2.0_5A225c.bundle/018-3476-4-nobb.patch</filename>
    </removed>
    <removed>
      <filename>ipsw-patch/FirmwareBundles/iPhone1,1_1.2.0_5A225c.bundle/018-3476-4.patch</filename>
    </removed>
    <removed>
      <filename>ipsw-patch/FirmwareBundles/iPhone1,1_1.2.0_5A225c.bundle/DeviceTree.m68ap.patch</filename>
    </removed>
    <removed>
      <filename>ipsw-patch/FirmwareBundles/iPhone1,1_1.2.0_5A225c.bundle/Info.plist</filename>
    </removed>
    <removed>
      <filename>ipsw-patch/FirmwareBundles/iPhone1,1_1.2.0_5A225c.bundle/Services.plist.patch</filename>
    </removed>
    <removed>
      <filename>ipsw-patch/FirmwareBundles/iPhone1,1_1.2.0_5A225c.bundle/bbupdater.patch</filename>
    </removed>
    <removed>
      <filename>ipsw-patch/FirmwareBundles/iPhone1,1_1.2.0_5A225c.bundle/fstab.patch</filename>
    </removed>
    <removed>
      <filename>ipsw-patch/FirmwareBundles/iPhone1,1_1.2.0_5A225c.bundle/iBEC.m68ap.RELEASE.patch</filename>
    </removed>
    <removed>
      <filename>ipsw-patch/FirmwareBundles/iPhone1,1_1.2.0_5A225c.bundle/iBSS.m68ap.RELEASE.patch</filename>
    </removed>
    <removed>
      <filename>ipsw-patch/FirmwareBundles/iPhone1,1_1.2.0_5A225c.bundle/iBoot.m68ap.RELEASE.patch</filename>
    </removed>
    <removed>
      <filename>ipsw-patch/FirmwareBundles/iPhone1,1_1.2.0_5A225c.bundle/kernelcache.release.patch</filename>
    </removed>
    <removed>
      <filename>ipsw-patch/FirmwareBundles/iPhone1,1_1.2.0_5A225c.bundle/lockdownd.patch</filename>
    </removed>
    <removed>
      <filename>ipsw-patch/FirmwareBundles/iPhone1,1_2.0_5A240d.bundle/018-3556-6-nobb.patch</filename>
    </removed>
    <removed>
      <filename>ipsw-patch/FirmwareBundles/iPhone1,1_2.0_5A240d.bundle/018-3556-6.patch</filename>
    </removed>
    <removed>
      <filename>ipsw-patch/FirmwareBundles/iPhone1,1_2.0_5A240d.bundle/DeviceTree.m68ap.patch</filename>
    </removed>
    <removed>
      <filename>ipsw-patch/FirmwareBundles/iPhone1,1_2.0_5A240d.bundle/Info.plist</filename>
    </removed>
    <removed>
      <filename>ipsw-patch/FirmwareBundles/iPhone1,1_2.0_5A240d.bundle/Services.plist.patch</filename>
    </removed>
    <removed>
      <filename>ipsw-patch/FirmwareBundles/iPhone1,1_2.0_5A240d.bundle/bbupdater.patch</filename>
    </removed>
    <removed>
      <filename>ipsw-patch/FirmwareBundles/iPhone1,1_2.0_5A240d.bundle/fstab.patch</filename>
    </removed>
    <removed>
      <filename>ipsw-patch/FirmwareBundles/iPhone1,1_2.0_5A240d.bundle/iBEC.m68ap.RELEASE.patch</filename>
    </removed>
    <removed>
      <filename>ipsw-patch/FirmwareBundles/iPhone1,1_2.0_5A240d.bundle/iBSS.m68ap.RELEASE.patch</filename>
    </removed>
    <removed>
      <filename>ipsw-patch/FirmwareBundles/iPhone1,1_2.0_5A240d.bundle/iBoot.m68ap.RELEASE.patch</filename>
    </removed>
    <removed>
      <filename>ipsw-patch/FirmwareBundles/iPhone1,1_2.0_5A240d.bundle/kernelcache.release.patch</filename>
    </removed>
    <removed>
      <filename>ipsw-patch/FirmwareBundles/iPhone1,1_2.0_5A240d.bundle/lockdownd.patch</filename>
    </removed>
    <removed>
      <filename>ipsw-patch/FirmwareBundles/iPod1,1_1.1.4_4A102.bundle/022-3896-4.patch</filename>
    </removed>
    <removed>
      <filename>ipsw-patch/FirmwareBundles/iPod1,1_1.1.4_4A102.bundle/022-3900-4.patch</filename>
    </removed>
    <removed>
      <filename>ipsw-patch/FirmwareBundles/iPod1,1_1.1.4_4A102.bundle/DeviceTree.n45ap.patch</filename>
    </removed>
    <removed>
      <filename>ipsw-patch/FirmwareBundles/iPod1,1_1.1.4_4A102.bundle/Info.plist</filename>
    </removed>
    <removed>
      <filename>ipsw-patch/FirmwareBundles/iPod1,1_1.1.4_4A102.bundle/Services.plist.patch</filename>
    </removed>
    <removed>
      <filename>ipsw-patch/FirmwareBundles/iPod1,1_1.1.4_4A102.bundle/fstab.patch</filename>
    </removed>
    <removed>
      <filename>ipsw-patch/FirmwareBundles/iPod1,1_1.1.4_4A102.bundle/iBEC.n45ap.RELEASE.patch</filename>
    </removed>
    <removed>
      <filename>ipsw-patch/FirmwareBundles/iPod1,1_1.1.4_4A102.bundle/iBSS.n45ap.RELEASE.patch</filename>
    </removed>
    <removed>
      <filename>ipsw-patch/FirmwareBundles/iPod1,1_1.1.4_4A102.bundle/iBoot.n45ap.RELEASE.patch</filename>
    </removed>
    <removed>
      <filename>ipsw-patch/FirmwareBundles/iPod1,1_1.1.4_4A102.bundle/kernelcache.release.patch</filename>
    </removed>
    <removed>
      <filename>ipsw-patch/FirmwareBundles/iPod1,1_2.0_5A225c.bundle/018-3476-4.patch</filename>
    </removed>
    <removed>
      <filename>ipsw-patch/FirmwareBundles/iPod1,1_2.0_5A225c.bundle/DeviceTree.n45ap.patch</filename>
    </removed>
    <removed>
      <filename>ipsw-patch/FirmwareBundles/iPod1,1_2.0_5A225c.bundle/Info.plist</filename>
    </removed>
    <removed>
      <filename>ipsw-patch/FirmwareBundles/iPod1,1_2.0_5A225c.bundle/Services.plist.patch</filename>
    </removed>
    <removed>
      <filename>ipsw-patch/FirmwareBundles/iPod1,1_2.0_5A225c.bundle/fstab.patch</filename>
    </removed>
    <removed>
      <filename>ipsw-patch/FirmwareBundles/iPod1,1_2.0_5A225c.bundle/iBEC.n45ap.RELEASE.patch</filename>
    </removed>
    <removed>
      <filename>ipsw-patch/FirmwareBundles/iPod1,1_2.0_5A225c.bundle/iBSS.n45ap.RELEASE.patch</filename>
    </removed>
    <removed>
      <filename>ipsw-patch/FirmwareBundles/iPod1,1_2.0_5A225c.bundle/iBoot.n45ap.RELEASE.patch</filename>
    </removed>
    <removed>
      <filename>ipsw-patch/FirmwareBundles/iPod1,1_2.0_5A225c.bundle/kernelcache.release.patch</filename>
    </removed>
    <removed>
      <filename>ipsw-patch/FirmwareBundles/iPod1,1_2.0_5A225c.bundle/lockdownd.patch</filename>
    </removed>
    <removed>
      <filename>ipsw-patch/FirmwareBundles/iPod1,1_2.0_5A240d.bundle/018-3556-6.patch</filename>
    </removed>
    <removed>
      <filename>ipsw-patch/FirmwareBundles/iPod1,1_2.0_5A240d.bundle/DeviceTree.n45ap.patch</filename>
    </removed>
    <removed>
      <filename>ipsw-patch/FirmwareBundles/iPod1,1_2.0_5A240d.bundle/Info.plist</filename>
    </removed>
    <removed>
      <filename>ipsw-patch/FirmwareBundles/iPod1,1_2.0_5A240d.bundle/Services.plist.patch</filename>
    </removed>
    <removed>
      <filename>ipsw-patch/FirmwareBundles/iPod1,1_2.0_5A240d.bundle/fstab.patch</filename>
    </removed>
    <removed>
      <filename>ipsw-patch/FirmwareBundles/iPod1,1_2.0_5A240d.bundle/iBEC.n45ap.RELEASE.patch</filename>
    </removed>
    <removed>
      <filename>ipsw-patch/FirmwareBundles/iPod1,1_2.0_5A240d.bundle/iBSS.n45ap.RELEASE.patch</filename>
    </removed>
    <removed>
      <filename>ipsw-patch/FirmwareBundles/iPod1,1_2.0_5A240d.bundle/iBoot.n45ap.RELEASE.patch</filename>
    </removed>
    <removed>
      <filename>ipsw-patch/FirmwareBundles/iPod1,1_2.0_5A240d.bundle/kernelcache.release.patch</filename>
    </removed>
    <removed>
      <filename>ipsw-patch/FirmwareBundles/iPod1,1_2.0_5A240d.bundle/lockdownd.patch</filename>
    </removed>
    <removed>
      <filename>ipsw-patch/Makefile</filename>
    </removed>
    <removed>
      <filename>ipsw-patch/bundles/BSDSubsystem.bundle/Info.plist</filename>
    </removed>
    <removed>
      <filename>ipsw-patch/bundles/BSDSubsystem.bundle/files/System/Library/LaunchDaemons/com.apple.cron.plist</filename>
    </removed>
    <removed>
      <filename>ipsw-patch/bundles/BSDSubsystem.bundle/files/bin/[</filename>
    </removed>
    <removed>
      <filename>ipsw-patch/bundles/BSDSubsystem.bundle/files/bin/bash</filename>
    </removed>
    <removed>
      <filename>ipsw-patch/bundles/BSDSubsystem.bundle/files/bin/cat</filename>
    </removed>
    <removed>
      <filename>ipsw-patch/bundles/BSDSubsystem.bundle/files/bin/chmod</filename>
    </removed>
    <removed>
      <filename>ipsw-patch/bundles/BSDSubsystem.bundle/files/bin/cp</filename>
    </removed>
    <removed>
      <filename>ipsw-patch/bundles/BSDSubsystem.bundle/files/bin/csh</filename>
    </removed>
    <removed>
      <filename>ipsw-patch/bundles/BSDSubsystem.bundle/files/bin/date</filename>
    </removed>
    <removed>
      <filename>ipsw-patch/bundles/BSDSubsystem.bundle/files/bin/dd</filename>
    </removed>
    <removed>
      <filename>ipsw-patch/bundles/BSDSubsystem.bundle/files/bin/df</filename>
    </removed>
    <removed>
      <filename>ipsw-patch/bundles/BSDSubsystem.bundle/files/bin/domainname</filename>
    </removed>
    <removed>
      <filename>ipsw-patch/bundles/BSDSubsystem.bundle/files/bin/echo</filename>
    </removed>
    <removed>
      <filename>ipsw-patch/bundles/BSDSubsystem.bundle/files/bin/ed</filename>
    </removed>
    <removed>
      <filename>ipsw-patch/bundles/BSDSubsystem.bundle/files/bin/expr</filename>
    </removed>
    <removed>
      <filename>ipsw-patch/bundles/BSDSubsystem.bundle/files/bin/getty</filename>
    </removed>
    <removed>
      <filename>ipsw-patch/bundles/BSDSubsystem.bundle/files/bin/hostname</filename>
    </removed>
    <removed>
      <filename>ipsw-patch/bundles/BSDSubsystem.bundle/files/bin/kill</filename>
    </removed>
    <removed>
      <filename>ipsw-patch/bundles/BSDSubsystem.bundle/files/bin/link</filename>
    </removed>
    <removed>
      <filename>ipsw-patch/bundles/BSDSubsystem.bundle/files/bin/ln</filename>
    </removed>
    <removed>
      <filename>ipsw-patch/bundles/BSDSubsystem.bundle/files/bin/ls</filename>
    </removed>
    <removed>
      <filename>ipsw-patch/bundles/BSDSubsystem.bundle/files/bin/mkdir</filename>
    </removed>
    <removed>
      <filename>ipsw-patch/bundles/BSDSubsystem.bundle/files/bin/mv</filename>
    </removed>
    <removed>
      <filename>ipsw-patch/bundles/BSDSubsystem.bundle/files/bin/pax</filename>
    </removed>
    <removed>
      <filename>ipsw-patch/bundles/BSDSubsystem.bundle/files/bin/printf</filename>
    </removed>
    <removed>
      <filename>ipsw-patch/bundles/BSDSubsystem.bundle/files/bin/ps</filename>
    </removed>
    <removed>
      <filename>ipsw-patch/bundles/BSDSubsystem.bundle/files/bin/pwd</filename>
    </removed>
    <removed>
      <filename>ipsw-patch/bundles/BSDSubsystem.bundle/files/bin/rm</filename>
    </removed>
    <removed>
      <filename>ipsw-patch/bundles/BSDSubsystem.bundle/files/bin/rmdir</filename>
    </removed>
    <removed>
      <filename>ipsw-patch/bundles/BSDSubsystem.bundle/files/bin/sh</filename>
    </removed>
    <removed>
      <filename>ipsw-patch/bundles/BSDSubsystem.bundle/files/bin/sleep</filename>
    </removed>
    <removed>
      <filename>ipsw-patch/bundles/BSDSubsystem.bundle/files/bin/stty</filename>
    </removed>
    <removed>
      <filename>ipsw-patch/bundles/BSDSubsystem.bundle/files/bin/sync</filename>
    </removed>
    <removed>
      <filename>ipsw-patch/bundles/BSDSubsystem.bundle/files/bin/tcsh</filename>
    </removed>
    <removed>
      <filename>ipsw-patch/bundles/BSDSubsystem.bundle/files/bin/test</filename>
    </removed>
    <removed>
      <filename>ipsw-patch/bundles/BSDSubsystem.bundle/files/bin/true</filename>
    </removed>
    <removed>
      <filename>ipsw-patch/bundles/BSDSubsystem.bundle/files/bin/unlink</filename>
    </removed>
    <removed>
      <filename>ipsw-patch/bundles/BSDSubsystem.bundle/files/bin/zsh</filename>
    </removed>
    <removed>
      <filename>ipsw-patch/bundles/BSDSubsystem.bundle/files/etc/csh.cshrc</filename>
    </removed>
    <removed>
      <filename>ipsw-patch/bundles/BSDSubsystem.bundle/files/etc/profile</filename>
    </removed>
    <removed>
      <filename>ipsw-patch/bundles/BSDSubsystem.bundle/files/etc/termcap</filename>
    </removed>
    <removed>
      <filename>ipsw-patch/bundles/BSDSubsystem.bundle/files/sbin/ifconfig</filename>
    </removed>
    <removed>
      <filename>ipsw-patch/bundles/BSDSubsystem.bundle/files/sbin/kextunload</filename>
    </removed>
    <removed>
      <filename>ipsw-patch/bundles/BSDSubsystem.bundle/files/sbin/md5</filename>
    </removed>
    <removed>
      <filename>ipsw-patch/bundles/BSDSubsystem.bundle/files/sbin/mknod</filename>
    </removed>
    <removed>
      <filename>ipsw-patch/bundles/BSDSubsystem.bundle/files/sbin/ping</filename>
    </removed>
    <removed>
      <filename>ipsw-patch/bundles/BSDSubsystem.bundle/files/sbin/reboot</filename>
    </removed>
    <removed>
      <filename>ipsw-patch/bundles/BSDSubsystem.bundle/files/sbin/route</filename>
    </removed>
    <removed>
      <filename>ipsw-patch/bundles/BSDSubsystem.bundle/files/usr/bin/alias</filename>
    </removed>
    <removed>
      <filename>ipsw-patch/bundles/BSDSubsystem.bundle/files/usr/bin/apply</filename>
    </removed>
    <removed>
      <filename>ipsw-patch/bundles/BSDSubsystem.bundle/files/usr/bin/awk</filename>
    </removed>
    <removed>
      <filename>ipsw-patch/bundles/BSDSubsystem.bundle/files/usr/bin/banner</filename>
    </removed>
    <removed>
      <filename>ipsw-patch/bundles/BSDSubsystem.bundle/files/usr/bin/basename</filename>
    </removed>
    <removed>
      <filename>ipsw-patch/bundles/BSDSubsystem.bundle/files/usr/bin/bzip2</filename>
    </removed>
    <removed>
      <filename>ipsw-patch/bundles/BSDSubsystem.bundle/files/usr/bin/cap_mkdb</filename>
    </removed>
    <removed>
      <filename>ipsw-patch/bundles/BSDSubsystem.bundle/files/usr/bin/chflags</filename>
    </removed>
    <removed>
      <filename>ipsw-patch/bundles/BSDSubsystem.bundle/files/usr/bin/chgrp</filename>
    </removed>
    <removed>
      <filename>ipsw-patch/bundles/BSDSubsystem.bundle/files/usr/bin/chown</filename>
    </removed>
    <removed>
      <filename>ipsw-patch/bundles/BSDSubsystem.bundle/files/usr/bin/cksum</filename>
    </removed>
    <removed>
      <filename>ipsw-patch/bundles/BSDSubsystem.bundle/files/usr/bin/col</filename>
    </removed>
    <removed>
      <filename>ipsw-patch/bundles/BSDSubsystem.bundle/files/usr/bin/colrm</filename>
    </removed>
    <removed>
      <filename>ipsw-patch/bundles/BSDSubsystem.bundle/files/usr/bin/column</filename>
    </removed>
    <removed>
      <filename>ipsw-patch/bundles/BSDSubsystem.bundle/files/usr/bin/comm</filename>
    </removed>
    <removed>
      <filename>ipsw-patch/bundles/BSDSubsystem.bundle/files/usr/bin/compress</filename>
    </removed>
    <removed>
      <filename>ipsw-patch/bundles/BSDSubsystem.bundle/files/usr/bin/crontab</filename>
    </removed>
    <removed>
      <filename>ipsw-patch/bundles/BSDSubsystem.bundle/files/usr/bin/csplit</filename>
    </removed>
    <removed>
      <filename>ipsw-patch/bundles/BSDSubsystem.bundle/files/usr/bin/curl</filename>
    </removed>
    <removed>
      <filename>ipsw-patch/bundles/BSDSubsystem.bundle/files/usr/bin/cut</filename>
    </removed>
    <removed>
      <filename>ipsw-patch/bundles/BSDSubsystem.bundle/files/usr/bin/dirname</filename>
    </removed>
    <removed>
      <filename>ipsw-patch/bundles/BSDSubsystem.bundle/files/usr/bin/ditto</filename>
    </removed>
    <removed>
      <filename>ipsw-patch/bundles/BSDSubsystem.bundle/files/usr/bin/du</filename>
    </removed>
    <removed>
      <filename>ipsw-patch/bundles/BSDSubsystem.bundle/files/usr/bin/env</filename>
    </removed>
    <removed>
      <filename>ipsw-patch/bundles/BSDSubsystem.bundle/files/usr/bin/expand</filename>
    </removed>
    <removed>
      <filename>ipsw-patch/bundles/BSDSubsystem.bundle/files/usr/bin/false</filename>
    </removed>
    <removed>
      <filename>ipsw-patch/bundles/BSDSubsystem.bundle/files/usr/bin/find</filename>
    </removed>
    <removed>
      <filename>ipsw-patch/bundles/BSDSubsystem.bundle/files/usr/bin/finger</filename>
    </removed>
    <removed>
      <filename>ipsw-patch/bundles/BSDSubsystem.bundle/files/usr/bin/fmt</filename>
    </removed>
    <removed>
      <filename>ipsw-patch/bundles/BSDSubsystem.bundle/files/usr/bin/fold</filename>
    </removed>
    <removed>
      <filename>ipsw-patch/bundles/BSDSubsystem.bundle/files/usr/bin/funzip</filename>
    </removed>
    <removed>
      <filename>ipsw-patch/bundles/BSDSubsystem.bundle/files/usr/bin/getopt</filename>
    </removed>
    <removed>
      <filename>ipsw-patch/bundles/BSDSubsystem.bundle/files/usr/bin/grep</filename>
    </removed>
    <removed>
      <filename>ipsw-patch/bundles/BSDSubsystem.bundle/files/usr/bin/groups</filename>
    </removed>
    <removed>
      <filename>ipsw-patch/bundles/BSDSubsystem.bundle/files/usr/bin/gunzip</filename>
    </removed>
    <removed>
      <filename>ipsw-patch/bundles/BSDSubsystem.bundle/files/usr/bin/gzexe</filename>
    </removed>
    <removed>
      <filename>ipsw-patch/bundles/BSDSubsystem.bundle/files/usr/bin/gzip</filename>
    </removed>
    <removed>
      <filename>ipsw-patch/bundles/BSDSubsystem.bundle/files/usr/bin/head</filename>
    </removed>
    <removed>
      <filename>ipsw-patch/bundles/BSDSubsystem.bundle/files/usr/bin/hexdump</filename>
    </removed>
    <removed>
      <filename>ipsw-patch/bundles/BSDSubsystem.bundle/files/usr/bin/hostinfo</filename>
    </removed>
    <removed>
      <filename>ipsw-patch/bundles/BSDSubsystem.bundle/files/usr/bin/id</filename>
    </removed>
    <removed>
      <filename>ipsw-patch/bundles/BSDSubsystem.bundle/files/usr/bin/install</filename>
    </removed>
    <removed>
      <filename>ipsw-patch/bundles/BSDSubsystem.bundle/files/usr/bin/ipcrm</filename>
    </removed>
    <removed>
      <filename>ipsw-patch/bundles/BSDSubsystem.bundle/files/usr/bin/join</filename>
    </removed>
    <removed>
      <filename>ipsw-patch/bundles/BSDSubsystem.bundle/files/usr/bin/jot</filename>
    </removed>
    <removed>
      <filename>ipsw-patch/bundles/BSDSubsystem.bundle/files/usr/bin/killall</filename>
    </removed>
    <removed>
      <filename>ipsw-patch/bundles/BSDSubsystem.bundle/files/usr/bin/lam</filename>
    </removed>
    <removed>
      <filename>ipsw-patch/bundles/BSDSubsystem.bundle/files/usr/bin/last</filename>
    </removed>
    <removed>
      <filename>ipsw-patch/bundles/BSDSubsystem.bundle/files/usr/bin/lastcomm</filename>
    </removed>
    <removed>
      <filename>ipsw-patch/bundles/BSDSubsystem.bundle/files/usr/bin/less</filename>
    </removed>
    <removed>
      <filename>ipsw-patch/bundles/BSDSubsystem.bundle/files/usr/bin/libgzip.a</filename>
    </removed>
    <removed>
      <filename>ipsw-patch/bundles/BSDSubsystem.bundle/files/usr/bin/locate</filename>
    </removed>
    <removed>
      <filename>ipsw-patch/bundles/BSDSubsystem.bundle/files/usr/bin/login</filename>
    </removed>
    <removed>
      <filename>ipsw-patch/bundles/BSDSubsystem.bundle/files/usr/bin/logname</filename>
    </removed>
    <removed>
      <filename>ipsw-patch/bundles/BSDSubsystem.bundle/files/usr/bin/look</filename>
    </removed>
    <removed>
      <filename>ipsw-patch/bundles/BSDSubsystem.bundle/files/usr/bin/lsvfs</filename>
    </removed>
    <removed>
      <filename>ipsw-patch/bundles/BSDSubsystem.bundle/files/usr/bin/makekey</filename>
    </removed>
    <removed>
      <filename>ipsw-patch/bundles/BSDSubsystem.bundle/files/usr/bin/md</filename>
    </removed>
    <removed>
      <filename>ipsw-patch/bundles/BSDSubsystem.bundle/files/usr/bin/mesg</filename>
    </removed>
    <removed>
      <filename>ipsw-patch/bundles/BSDSubsystem.bundle/files/usr/bin/minicom</filename>
    </removed>
    <removed>
      <filename>ipsw-patch/bundles/BSDSubsystem.bundle/files/usr/bin/mkfifo</filename>
    </removed>
    <removed>
      <filename>ipsw-patch/bundles/BSDSubsystem.bundle/files/usr/bin/mktemp</filename>
    </removed>
    <removed>
      <filename>ipsw-patch/bundles/BSDSubsystem.bundle/files/usr/bin/more</filename>
    </removed>
    <removed>
      <filename>ipsw-patch/bundles/BSDSubsystem.bundle/files/usr/bin/nano</filename>
    </removed>
    <removed>
      <filename>ipsw-patch/bundles/BSDSubsystem.bundle/files/usr/bin/nc</filename>
    </removed>
    <removed>
      <filename>ipsw-patch/bundles/BSDSubsystem.bundle/files/usr/bin/nice</filename>
    </removed>
    <removed>
      <filename>ipsw-patch/bundles/BSDSubsystem.bundle/files/usr/bin/nl</filename>
    </removed>
    <removed>
      <filename>ipsw-patch/bundles/BSDSubsystem.bundle/files/usr/bin/nohup</filename>
    </removed>
    <removed>
      <filename>ipsw-patch/bundles/BSDSubsystem.bundle/files/usr/bin/od</filename>
    </removed>
    <removed>
      <filename>ipsw-patch/bundles/BSDSubsystem.bundle/files/usr/bin/passwd</filename>
    </removed>
    <removed>
      <filename>ipsw-patch/bundles/BSDSubsystem.bundle/files/usr/bin/paste</filename>
    </removed>
    <removed>
      <filename>ipsw-patch/bundles/BSDSubsystem.bundle/files/usr/bin/pathchk</filename>
    </removed>
    <removed>
      <filename>ipsw-patch/bundles/BSDSubsystem.bundle/files/usr/bin/pico</filename>
    </removed>
    <removed>
      <filename>ipsw-patch/bundles/BSDSubsystem.bundle/files/usr/bin/pr</filename>
    </removed>
    <removed>
      <filename>ipsw-patch/bundles/BSDSubsystem.bundle/files/usr/bin/printenv</filename>
    </removed>
    <removed>
      <filename>ipsw-patch/bundles/BSDSubsystem.bundle/files/usr/bin/printf</filename>
    </removed>
    <removed>
      <filename>ipsw-patch/bundles/BSDSubsystem.bundle/files/usr/bin/readlink</filename>
    </removed>
    <removed>
      <filename>ipsw-patch/bundles/BSDSubsystem.bundle/files/usr/bin/renice</filename>
    </removed>
    <removed>
      <filename>ipsw-patch/bundles/BSDSubsystem.bundle/files/usr/bin/rev</filename>
    </removed>
    <removed>
      <filename>ipsw-patch/bundles/BSDSubsystem.bundle/files/usr/bin/rs</filename>
    </removed>
    <removed>
      <filename>ipsw-patch/bundles/BSDSubsystem.bundle/files/usr/bin/rsync</filename>
    </removed>
    <removed>
      <filename>ipsw-patch/bundles/BSDSubsystem.bundle/files/usr/bin/sar</filename>
    </removed>
    <removed>
      <filename>ipsw-patch/bundles/BSDSubsystem.bundle/files/usr/bin/screen</filename>
    </removed>
    <removed>
      <filename>ipsw-patch/bundles/BSDSubsystem.bundle/files/usr/bin/script</filename>
    </removed>
    <removed>
      <filename>ipsw-patch/bundles/BSDSubsystem.bundle/files/usr/bin/sed</filename>
    </removed>
    <removed>
      <filename>ipsw-patch/bundles/BSDSubsystem.bundle/files/usr/bin/shlock</filename>
    </removed>
    <removed>
      <filename>ipsw-patch/bundles/BSDSubsystem.bundle/files/usr/bin/snap</filename>
    </removed>
    <removed>
      <filename>ipsw-patch/bundles/BSDSubsystem.bundle/files/usr/bin/sort</filename>
    </removed>
    <removed>
      <filename>ipsw-patch/bundles/BSDSubsystem.bundle/files/usr/bin/split</filename>
    </removed>
    <removed>
      <filename>ipsw-patch/bundles/BSDSubsystem.bundle/files/usr/bin/srelay</filename>
    </removed>
    <removed>
      <filename>ipsw-patch/bundles/BSDSubsystem.bundle/files/usr/bin/stat</filename>
    </removed>
    <removed>
      <filename>ipsw-patch/bundles/BSDSubsystem.bundle/files/usr/bin/su</filename>
    </removed>
    <removed>
      <filename>ipsw-patch/bundles/BSDSubsystem.bundle/files/usr/bin/sum</filename>
    </removed>
    <removed>
      <filename>ipsw-patch/bundles/BSDSubsystem.bundle/files/usr/bin/tabs</filename>
    </removed>
    <removed>
      <filename>ipsw-patch/bundles/BSDSubsystem.bundle/files/usr/bin/tail</filename>
    </removed>
    <removed>
      <filename>ipsw-patch/bundles/BSDSubsystem.bundle/files/usr/bin/tar</filename>
    </removed>
    <removed>
      <filename>ipsw-patch/bundles/BSDSubsystem.bundle/files/usr/bin/tcopy</filename>
    </removed>
    <removed>
      <filename>ipsw-patch/bundles/BSDSubsystem.bundle/files/usr/bin/tee</filename>
    </removed>
    <removed>
      <filename>ipsw-patch/bundles/BSDSubsystem.bundle/files/usr/bin/telnet</filename>
    </removed>
    <removed>
      <filename>ipsw-patch/bundles/BSDSubsystem.bundle/files/usr/bin/tftp</filename>
    </removed>
    <removed>
      <filename>ipsw-patch/bundles/BSDSubsystem.bundle/files/usr/bin/time</filename>
    </removed>
    <removed>
      <filename>ipsw-patch/bundles/BSDSubsystem.bundle/files/usr/bin/top</filename>
    </removed>
    <removed>
      <filename>ipsw-patch/bundles/BSDSubsystem.bundle/files/usr/bin/touch</filename>
    </removed>
    <removed>
      <filename>ipsw-patch/bundles/BSDSubsystem.bundle/files/usr/bin/tr</filename>
    </removed>
    <removed>
      <filename>ipsw-patch/bundles/BSDSubsystem.bundle/files/usr/bin/true</filename>
    </removed>
    <removed>
      <filename>ipsw-patch/bundles/BSDSubsystem.bundle/files/usr/bin/tsort</filename>
    </removed>
    <removed>
      <filename>ipsw-patch/bundles/BSDSubsystem.bundle/files/usr/bin/tty</filename>
    </removed>
    <removed>
      <filename>ipsw-patch/bundles/BSDSubsystem.bundle/files/usr/bin/ul</filename>
    </removed>
    <removed>
      <filename>ipsw-patch/bundles/BSDSubsystem.bundle/files/usr/bin/uname</filename>
    </removed>
    <removed>
      <filename>ipsw-patch/bundles/BSDSubsystem.bundle/files/usr/bin/unexpand</filename>
    </removed>
    <removed>
      <filename>ipsw-patch/bundles/BSDSubsystem.bundle/files/usr/bin/uniq</filename>
    </removed>
    <removed>
      <filename>ipsw-patch/bundles/BSDSubsystem.bundle/files/usr/bin/unvis</filename>
    </removed>
    <removed>
      <filename>ipsw-patch/bundles/BSDSubsystem.bundle/files/usr/bin/unzip</filename>
    </removed>
    <removed>
      <filename>ipsw-patch/bundles/BSDSubsystem.bundle/files/usr/bin/unzipsfx</filename>
    </removed>
    <removed>
      <filename>ipsw-patch/bundles/BSDSubsystem.bundle/files/usr/bin/uptime</filename>
    </removed>
    <removed>
      <filename>ipsw-patch/bundles/BSDSubsystem.bundle/files/usr/bin/users</filename>
    </removed>
    <removed>
      <filename>ipsw-patch/bundles/BSDSubsystem.bundle/files/usr/bin/vi</filename>
    </removed>
    <removed>
      <filename>ipsw-patch/bundles/BSDSubsystem.bundle/files/usr/bin/vim</filename>
    </removed>
    <removed>
      <filename>ipsw-patch/bundles/BSDSubsystem.bundle/files/usr/bin/vis</filename>
    </removed>
    <removed>
      <filename>ipsw-patch/bundles/BSDSubsystem.bundle/files/usr/bin/wall</filename>
    </removed>
    <removed>
      <filename>ipsw-patch/bundles/BSDSubsystem.bundle/files/usr/bin/wc</filename>
    </removed>
    <removed>
      <filename>ipsw-patch/bundles/BSDSubsystem.bundle/files/usr/bin/whereis</filename>
    </removed>
    <removed>
      <filename>ipsw-patch/bundles/BSDSubsystem.bundle/files/usr/bin/which</filename>
    </removed>
    <removed>
      <filename>ipsw-patch/bundles/BSDSubsystem.bundle/files/usr/bin/who</filename>
    </removed>
    <removed>
      <filename>ipsw-patch/bundles/BSDSubsystem.bundle/files/usr/bin/whoami</filename>
    </removed>
    <removed>
      <filename>ipsw-patch/bundles/BSDSubsystem.bundle/files/usr/bin/whois</filename>
    </removed>
    <removed>
      <filename>ipsw-patch/bundles/BSDSubsystem.bundle/files/usr/bin/xargs</filename>
    </removed>
    <removed>
      <filename>ipsw-patch/bundles/BSDSubsystem.bundle/files/usr/bin/yes</filename>
    </removed>
    <removed>
      <filename>ipsw-patch/bundles/BSDSubsystem.bundle/files/usr/bin/zcat</filename>
    </removed>
    <removed>
      <filename>ipsw-patch/bundles/BSDSubsystem.bundle/files/usr/bin/zcmp</filename>
    </removed>
    <removed>
      <filename>ipsw-patch/bundles/BSDSubsystem.bundle/files/usr/bin/zdiff</filename>
    </removed>
    <removed>
      <filename>ipsw-patch/bundles/BSDSubsystem.bundle/files/usr/bin/zegrep</filename>
    </removed>
    <removed>
      <filename>ipsw-patch/bundles/BSDSubsystem.bundle/files/usr/bin/zfgrep</filename>
    </removed>
    <removed>
      <filename>ipsw-patch/bundles/BSDSubsystem.bundle/files/usr/bin/zforce</filename>
    </removed>
    <removed>
      <filename>ipsw-patch/bundles/BSDSubsystem.bundle/files/usr/bin/zgrep</filename>
    </removed>
    <removed>
      <filename>ipsw-patch/bundles/BSDSubsystem.bundle/files/usr/bin/zless</filename>
    </removed>
    <removed>
      <filename>ipsw-patch/bundles/BSDSubsystem.bundle/files/usr/bin/zmore</filename>
    </removed>
    <removed>
      <filename>ipsw-patch/bundles/BSDSubsystem.bundle/files/usr/bin/znew</filename>
    </removed>
    <removed>
      <filename>ipsw-patch/bundles/BSDSubsystem.bundle/files/usr/bin/zprint</filename>
    </removed>
    <removed>
      <filename>ipsw-patch/bundles/BSDSubsystem.bundle/files/usr/lib/libarmfp.dylib</filename>
    </removed>
    <removed>
      <filename>ipsw-patch/bundles/BSDSubsystem.bundle/files/usr/lib/sa/sadc</filename>
    </removed>
    <removed>
      <filename>ipsw-patch/bundles/BSDSubsystem.bundle/files/usr/sbin/ac</filename>
    </removed>
    <removed>
      <filename>ipsw-patch/bundles/BSDSubsystem.bundle/files/usr/sbin/arp</filename>
    </removed>
    <removed>
      <filename>ipsw-patch/bundles/BSDSubsystem.bundle/files/usr/sbin/chown</filename>
    </removed>
    <removed>
      <filename>ipsw-patch/bundles/BSDSubsystem.bundle/files/usr/sbin/chroot</filename>
    </removed>
    <removed>
      <filename>ipsw-patch/bundles/BSDSubsystem.bundle/files/usr/sbin/cron</filename>
    </removed>
    <removed>
      <filename>ipsw-patch/bundles/BSDSubsystem.bundle/files/usr/sbin/fdisk</filename>
    </removed>
    <removed>
      <filename>ipsw-patch/bundles/BSDSubsystem.bundle/files/usr/sbin/ifconfig</filename>
    </removed>
    <removed>
      <filename>ipsw-patch/bundles/BSDSubsystem.bundle/files/usr/sbin/ioreg</filename>
    </removed>
    <removed>
      <filename>ipsw-patch/bundles/BSDSubsystem.bundle/files/usr/sbin/iostat</filename>
    </removed>
    <removed>
      <filename>ipsw-patch/bundles/BSDSubsystem.bundle/files/usr/sbin/kextstat</filename>
    </removed>
    <removed>
      <filename>ipsw-patch/bundles/BSDSubsystem.bundle/files/usr/sbin/kextunload</filename>
    </removed>
    <removed>
      <filename>ipsw-patch/bundles/BSDSubsystem.bundle/files/usr/sbin/makedbm</filename>
    </removed>
    <removed>
      <filename>ipsw-patch/bundles/BSDSubsystem.bundle/files/usr/sbin/md5</filename>
    </removed>
    <removed>
      <filename>ipsw-patch/bundles/BSDSubsystem.bundle/files/usr/sbin/mkfile</filename>
    </removed>
    <removed>
      <filename>ipsw-patch/bundles/BSDSubsystem.bundle/files/usr/sbin/mknod</filename>
    </removed>
    <removed>
      <filename>ipsw-patch/bundles/BSDSubsystem.bundle/files/usr/sbin/mtree</filename>
    </removed>
    <removed>
      <filename>ipsw-patch/bundles/BSDSubsystem.bundle/files/usr/sbin/netstat</filename>
    </removed>
    <removed>
      <filename>ipsw-patch/bundles/BSDSubsystem.bundle/files/usr/sbin/nvram</filename>
    </removed>
    <removed>
      <filename>ipsw-patch/bundles/BSDSubsystem.bundle/files/usr/sbin/ping</filename>
    </removed>
    <removed>
      <filename>ipsw-patch/bundles/BSDSubsystem.bundle/files/usr/sbin/pt_chown</filename>
    </removed>
    <removed>
      <filename>ipsw-patch/bundles/BSDSubsystem.bundle/files/usr/sbin/reboot</filename>
    </removed>
    <removed>
      <filename>ipsw-patch/bundles/BSDSubsystem.bundle/files/usr/sbin/rmt</filename>
    </removed>
    <removed>
      <filename>ipsw-patch/bundles/BSDSubsystem.bundle/files/usr/sbin/route</filename>
    </removed>
    <removed>
      <filename>ipsw-patch/bundles/BSDSubsystem.bundle/files/usr/sbin/sysctl</filename>
    </removed>
    <removed>
      <filename>ipsw-patch/bundles/BSDSubsystem.bundle/files/usr/sbin/tcpdump</filename>
    </removed>
    <removed>
      <filename>ipsw-patch/bundles/BSDSubsystem.bundle/files/usr/sbin/traceroute</filename>
    </removed>
    <removed>
      <filename>ipsw-patch/bundles/BSDSubsystem.bundle/files/usr/sbin/vipw</filename>
    </removed>
    <removed>
      <filename>ipsw-patch/bundles/BSDSubsystem.bundle/files/usr/sbin/vmstat</filename>
    </removed>
    <removed>
      <filename>ipsw-patch/bundles/BSDSubsystem.bundle/files/usr/sbin/zdump</filename>
    </removed>
    <removed>
      <filename>ipsw-patch/bundles/BSDSubsystem.bundle/files/usr/sbin/zic</filename>
    </removed>
    <removed>
      <filename>ipsw-patch/bundles/BSDSubsystem.bundle/files/var/cron/tabs/root</filename>
    </removed>
    <removed>
      <filename>ipsw-patch/bundles/BSDSubsystem_2.bundle/Info.plist</filename>
    </removed>
    <removed>
      <filename>ipsw-patch/bundles/BSDSubsystem_2.bundle/files/bin/[</filename>
    </removed>
    <removed>
      <filename>ipsw-patch/bundles/BSDSubsystem_2.bundle/files/bin/bash</filename>
    </removed>
    <removed>
      <filename>ipsw-patch/bundles/BSDSubsystem_2.bundle/files/bin/cat</filename>
    </removed>
    <removed>
      <filename>ipsw-patch/bundles/BSDSubsystem_2.bundle/files/bin/chmod</filename>
    </removed>
    <removed>
      <filename>ipsw-patch/bundles/BSDSubsystem_2.bundle/files/bin/cp</filename>
    </removed>
    <removed>
      <filename>ipsw-patch/bundles/BSDSubsystem_2.bundle/files/bin/csh</filename>
    </removed>
    <removed>
      <filename>ipsw-patch/bundles/BSDSubsystem_2.bundle/files/bin/date</filename>
    </removed>
    <removed>
      <filename>ipsw-patch/bundles/BSDSubsystem_2.bundle/files/bin/dd</filename>
    </removed>
    <removed>
      <filename>ipsw-patch/bundles/BSDSubsystem_2.bundle/files/bin/df</filename>
    </removed>
    <removed>
      <filename>ipsw-patch/bundles/BSDSubsystem_2.bundle/files/bin/domainname</filename>
    </removed>
    <removed>
      <filename>ipsw-patch/bundles/BSDSubsystem_2.bundle/files/bin/echo</filename>
    </removed>
    <removed>
      <filename>ipsw-patch/bundles/BSDSubsystem_2.bundle/files/bin/ed</filename>
    </removed>
    <removed>
      <filename>ipsw-patch/bundles/BSDSubsystem_2.bundle/files/bin/expr</filename>
    </removed>
    <removed>
      <filename>ipsw-patch/bundles/BSDSubsystem_2.bundle/files/bin/getty</filename>
    </removed>
    <removed>
      <filename>ipsw-patch/bundles/BSDSubsystem_2.bundle/files/bin/hostname</filename>
    </removed>
    <removed>
      <filename>ipsw-patch/bundles/BSDSubsystem_2.bundle/files/bin/kill</filename>
    </removed>
    <removed>
      <filename>ipsw-patch/bundles/BSDSubsystem_2.bundle/files/bin/link</filename>
    </removed>
    <removed>
      <filename>ipsw-patch/bundles/BSDSubsystem_2.bundle/files/bin/ln</filename>
    </removed>
    <removed>
      <filename>ipsw-patch/bundles/BSDSubsystem_2.bundle/files/bin/ls</filename>
    </removed>
    <removed>
      <filename>ipsw-patch/bundles/BSDSubsystem_2.bundle/files/bin/mkdir</filename>
    </removed>
    <removed>
      <filename>ipsw-patch/bundles/BSDSubsystem_2.bundle/files/bin/mv</filename>
    </removed>
    <removed>
      <filename>ipsw-patch/bundles/BSDSubsystem_2.bundle/files/bin/pax</filename>
    </removed>
    <removed>
      <filename>ipsw-patch/bundles/BSDSubsystem_2.bundle/files/bin/printf</filename>
    </removed>
    <removed>
      <filename>ipsw-patch/bundles/BSDSubsystem_2.bundle/files/bin/ps</filename>
    </removed>
    <removed>
      <filename>ipsw-patch/bundles/BSDSubsystem_2.bundle/files/bin/pwd</filename>
    </removed>
    <removed>
      <filename>ipsw-patch/bundles/BSDSubsystem_2.bundle/files/bin/rm</filename>
    </removed>
    <removed>
      <filename>ipsw-patch/bundles/BSDSubsystem_2.bundle/files/bin/rmdir</filename>
    </removed>
    <removed>
      <filename>ipsw-patch/bundles/BSDSubsystem_2.bundle/files/bin/sh</filename>
    </removed>
    <removed>
      <filename>ipsw-patch/bundles/BSDSubsystem_2.bundle/files/bin/sleep</filename>
    </removed>
    <removed>
      <filename>ipsw-patch/bundles/BSDSubsystem_2.bundle/files/bin/stty</filename>
    </removed>
    <removed>
      <filename>ipsw-patch/bundles/BSDSubsystem_2.bundle/files/bin/sync</filename>
    </removed>
    <removed>
      <filename>ipsw-patch/bundles/BSDSubsystem_2.bundle/files/bin/tcsh</filename>
    </removed>
    <removed>
      <filename>ipsw-patch/bundles/BSDSubsystem_2.bundle/files/bin/test</filename>
    </removed>
    <removed>
      <filename>ipsw-patch/bundles/BSDSubsystem_2.bundle/files/bin/true</filename>
    </removed>
    <removed>
      <filename>ipsw-patch/bundles/BSDSubsystem_2.bundle/files/bin/unlink</filename>
    </removed>
    <removed>
      <filename>ipsw-patch/bundles/BSDSubsystem_2.bundle/files/bin/zsh</filename>
    </removed>
    <removed>
      <filename>ipsw-patch/bundles/BSDSubsystem_2.bundle/files/etc/termcap</filename>
    </removed>
    <removed>
      <filename>ipsw-patch/bundles/BSDSubsystem_2.bundle/files/sbin/ifconfig</filename>
    </removed>
    <removed>
      <filename>ipsw-patch/bundles/BSDSubsystem_2.bundle/files/sbin/kextunload</filename>
    </removed>
    <removed>
      <filename>ipsw-patch/bundles/BSDSubsystem_2.bundle/files/sbin/md5</filename>
    </removed>
    <removed>
      <filename>ipsw-patch/bundles/BSDSubsystem_2.bundle/files/sbin/mknod</filename>
    </removed>
    <removed>
      <filename>ipsw-patch/bundles/BSDSubsystem_2.bundle/files/sbin/ping</filename>
    </removed>
    <removed>
      <filename>ipsw-patch/bundles/BSDSubsystem_2.bundle/files/sbin/reboot</filename>
    </removed>
    <removed>
      <filename>ipsw-patch/bundles/BSDSubsystem_2.bundle/files/sbin/route</filename>
    </removed>
    <removed>
      <filename>ipsw-patch/bundles/BSDSubsystem_2.bundle/files/usr/bin/alias</filename>
    </removed>
    <removed>
      <filename>ipsw-patch/bundles/BSDSubsystem_2.bundle/files/usr/bin/apply</filename>
    </removed>
    <removed>
      <filename>ipsw-patch/bundles/BSDSubsystem_2.bundle/files/usr/bin/awk</filename>
    </removed>
    <removed>
      <filename>ipsw-patch/bundles/BSDSubsystem_2.bundle/files/usr/bin/banner</filename>
    </removed>
    <removed>
      <filename>ipsw-patch/bundles/BSDSubsystem_2.bundle/files/usr/bin/basename</filename>
    </removed>
    <removed>
      <filename>ipsw-patch/bundles/BSDSubsystem_2.bundle/files/usr/bin/bzip2</filename>
    </removed>
    <removed>
      <filename>ipsw-patch/bundles/BSDSubsystem_2.bundle/files/usr/bin/cap_mkdb</filename>
    </removed>
    <removed>
      <filename>ipsw-patch/bundles/BSDSubsystem_2.bundle/files/usr/bin/chflags</filename>
    </removed>
    <removed>
      <filename>ipsw-patch/bundles/BSDSubsystem_2.bundle/files/usr/bin/chgrp</filename>
    </removed>
    <removed>
      <filename>ipsw-patch/bundles/BSDSubsystem_2.bundle/files/usr/bin/cksum</filename>
    </removed>
    <removed>
      <filename>ipsw-patch/bundles/BSDSubsystem_2.bundle/files/usr/bin/col</filename>
    </removed>
    <removed>
      <filename>ipsw-patch/bundles/BSDSubsystem_2.bundle/files/usr/bin/colrm</filename>
    </removed>
    <removed>
      <filename>ipsw-patch/bundles/BSDSubsystem_2.bundle/files/usr/bin/column</filename>
    </removed>
    <removed>
      <filename>ipsw-patch/bundles/BSDSubsystem_2.bundle/files/usr/bin/comm</filename>
    </removed>
    <removed>
      <filename>ipsw-patch/bundles/BSDSubsystem_2.bundle/files/usr/bin/compress</filename>
    </removed>
    <removed>
      <filename>ipsw-patch/bundles/BSDSubsystem_2.bundle/files/usr/bin/crontab</filename>
    </removed>
    <removed>
      <filename>ipsw-patch/bundles/BSDSubsystem_2.bundle/files/usr/bin/csplit</filename>
    </removed>
    <removed>
      <filename>ipsw-patch/bundles/BSDSubsystem_2.bundle/files/usr/bin/curl</filename>
    </removed>
    <removed>
      <filename>ipsw-patch/bundles/BSDSubsystem_2.bundle/files/usr/bin/cut</filename>
    </removed>
    <removed>
      <filename>ipsw-patch/bundles/BSDSubsystem_2.bundle/files/usr/bin/dirname</filename>
    </removed>
    <removed>
      <filename>ipsw-patch/bundles/BSDSubsystem_2.bundle/files/usr/bin/ditto</filename>
    </removed>
    <removed>
      <filename>ipsw-patch/bundles/BSDSubsystem_2.bundle/files/usr/bin/du</filename>
    </removed>
    <removed>
      <filename>ipsw-patch/bundles/BSDSubsystem_2.bundle/files/usr/bin/env</filename>
    </removed>
    <removed>
      <filename>ipsw-patch/bundles/BSDSubsystem_2.bundle/files/usr/bin/expand</filename>
    </removed>
    <removed>
      <filename>ipsw-patch/bundles/BSDSubsystem_2.bundle/files/usr/bin/false</filename>
    </removed>
    <removed>
      <filename>ipsw-patch/bundles/BSDSubsystem_2.bundle/files/usr/bin/find</filename>
    </removed>
    <removed>
      <filename>ipsw-patch/bundles/BSDSubsystem_2.bundle/files/usr/bin/finger</filename>
    </removed>
    <removed>
      <filename>ipsw-patch/bundles/BSDSubsystem_2.bundle/files/usr/bin/fmt</filename>
    </removed>
    <removed>
      <filename>ipsw-patch/bundles/BSDSubsystem_2.bundle/files/usr/bin/fold</filename>
    </removed>
    <removed>
      <filename>ipsw-patch/bundles/BSDSubsystem_2.bundle/files/usr/bin/funzip</filename>
    </removed>
    <removed>
      <filename>ipsw-patch/bundles/BSDSubsystem_2.bundle/files/usr/bin/getopt</filename>
    </removed>
    <removed>
      <filename>ipsw-patch/bundles/BSDSubsystem_2.bundle/files/usr/bin/grep</filename>
    </removed>
    <removed>
      <filename>ipsw-patch/bundles/BSDSubsystem_2.bundle/files/usr/bin/groups</filename>
    </removed>
    <removed>
      <filename>ipsw-patch/bundles/BSDSubsystem_2.bundle/files/usr/bin/gunzip</filename>
    </removed>
    <removed>
      <filename>ipsw-patch/bundles/BSDSubsystem_2.bundle/files/usr/bin/gzexe</filename>
    </removed>
    <removed>
      <filename>ipsw-patch/bundles/BSDSubsystem_2.bundle/files/usr/bin/gzip</filename>
    </removed>
    <removed>
      <filename>ipsw-patch/bundles/BSDSubsystem_2.bundle/files/usr/bin/head</filename>
    </removed>
    <removed>
      <filename>ipsw-patch/bundles/BSDSubsystem_2.bundle/files/usr/bin/hexdump</filename>
    </removed>
    <removed>
      <filename>ipsw-patch/bundles/BSDSubsystem_2.bundle/files/usr/bin/hostinfo</filename>
    </removed>
    <removed>
      <filename>ipsw-patch/bundles/BSDSubsystem_2.bundle/files/usr/bin/id</filename>
    </removed>
    <removed>
      <filename>ipsw-patch/bundles/BSDSubsystem_2.bundle/files/usr/bin/install</filename>
    </removed>
    <removed>
      <filename>ipsw-patch/bundles/BSDSubsystem_2.bundle/files/usr/bin/ipcrm</filename>
    </removed>
    <removed>
      <filename>ipsw-patch/bundles/BSDSubsystem_2.bundle/files/usr/bin/join</filename>
    </removed>
    <removed>
      <filename>ipsw-patch/bundles/BSDSubsystem_2.bundle/files/usr/bin/jot</filename>
    </removed>
    <removed>
      <filename>ipsw-patch/bundles/BSDSubsystem_2.bundle/files/usr/bin/killall</filename>
    </removed>
    <removed>
      <filename>ipsw-patch/bundles/BSDSubsystem_2.bundle/files/usr/bin/lam</filename>
    </removed>
    <removed>
      <filename>ipsw-patch/bundles/BSDSubsystem_2.bundle/files/usr/bin/last</filename>
    </removed>
    <removed>
      <filename>ipsw-patch/bundles/BSDSubsystem_2.bundle/files/usr/bin/lastcomm</filename>
    </removed>
    <removed>
      <filename>ipsw-patch/bundles/BSDSubsystem_2.bundle/files/usr/bin/less</filename>
    </removed>
    <removed>
      <filename>ipsw-patch/bundles/BSDSubsystem_2.bundle/files/usr/bin/libgzip.a</filename>
    </removed>
    <removed>
      <filename>ipsw-patch/bundles/BSDSubsystem_2.bundle/files/usr/bin/locate</filename>
    </removed>
    <removed>
      <filename>ipsw-patch/bundles/BSDSubsystem_2.bundle/files/usr/bin/login</filename>
    </removed>
    <removed>
      <filename>ipsw-patch/bundles/BSDSubsystem_2.bundle/files/usr/bin/logname</filename>
    </removed>
    <removed>
      <filename>ipsw-patch/bundles/BSDSubsystem_2.bundle/files/usr/bin/look</filename>
    </removed>
    <removed>
      <filename>ipsw-patch/bundles/BSDSubsystem_2.bundle/files/usr/bin/lsvfs</filename>
    </removed>
    <removed>
      <filename>ipsw-patch/bundles/BSDSubsystem_2.bundle/files/usr/bin/makekey</filename>
    </removed>
    <removed>
      <filename>ipsw-patch/bundles/BSDSubsystem_2.bundle/files/usr/bin/md</filename>
    </removed>
    <removed>
      <filename>ipsw-patch/bundles/BSDSubsystem_2.bundle/files/usr/bin/mesg</filename>
    </removed>
    <removed>
      <filename>ipsw-patch/bundles/BSDSubsystem_2.bundle/files/usr/bin/minicom</filename>
    </removed>
    <removed>
      <filename>ipsw-patch/bundles/BSDSubsystem_2.bundle/files/usr/bin/mkfifo</filename>
    </removed>
    <removed>
      <filename>ipsw-patch/bundles/BSDSubsystem_2.bundle/files/usr/bin/mktemp</filename>
    </removed>
    <removed>
      <filename>ipsw-patch/bundles/BSDSubsystem_2.bundle/files/usr/bin/more</filename>
    </removed>
    <removed>
      <filename>ipsw-patch/bundles/BSDSubsystem_2.bundle/files/usr/bin/nano</filename>
    </removed>
    <removed>
      <filename>ipsw-patch/bundles/BSDSubsystem_2.bundle/files/usr/bin/nc</filename>
    </removed>
    <removed>
      <filename>ipsw-patch/bundles/BSDSubsystem_2.bundle/files/usr/bin/nice</filename>
    </removed>
    <removed>
      <filename>ipsw-patch/bundles/BSDSubsystem_2.bundle/files/usr/bin/nl</filename>
    </removed>
    <removed>
      <filename>ipsw-patch/bundles/BSDSubsystem_2.bundle/files/usr/bin/nohup</filename>
    </removed>
    <removed>
      <filename>ipsw-patch/bundles/BSDSubsystem_2.bundle/files/usr/bin/od</filename>
    </removed>
    <removed>
      <filename>ipsw-patch/bundles/BSDSubsystem_2.bundle/files/usr/bin/passwd</filename>
    </removed>
    <removed>
      <filename>ipsw-patch/bundles/BSDSubsystem_2.bundle/files/usr/bin/paste</filename>
    </removed>
    <removed>
      <filename>ipsw-patch/bundles/BSDSubsystem_2.bundle/files/usr/bin/pathchk</filename>
    </removed>
    <removed>
      <filename>ipsw-patch/bundles/BSDSubsystem_2.bundle/files/usr/bin/pico</filename>
    </removed>
    <removed>
      <filename>ipsw-patch/bundles/BSDSubsystem_2.bundle/files/usr/bin/pr</filename>
    </removed>
    <removed>
      <filename>ipsw-patch/bundles/BSDSubsystem_2.bundle/files/usr/bin/printenv</filename>
    </removed>
    <removed>
      <filename>ipsw-patch/bundles/BSDSubsystem_2.bundle/files/usr/bin/printf</filename>
    </removed>
    <removed>
      <filename>ipsw-patch/bundles/BSDSubsystem_2.bundle/files/usr/bin/readlink</filename>
    </removed>
    <removed>
      <filename>ipsw-patch/bundles/BSDSubsystem_2.bundle/files/usr/bin/renice</filename>
    </removed>
    <removed>
      <filename>ipsw-patch/bundles/BSDSubsystem_2.bundle/files/usr/bin/rev</filename>
    </removed>
    <removed>
      <filename>ipsw-patch/bundles/BSDSubsystem_2.bundle/files/usr/bin/rs</filename>
    </removed>
    <removed>
      <filename>ipsw-patch/bundles/BSDSubsystem_2.bundle/files/usr/bin/rsync</filename>
    </removed>
    <removed>
      <filename>ipsw-patch/bundles/BSDSubsystem_2.bundle/files/usr/bin/sar</filename>
    </removed>
    <removed>
      <filename>ipsw-patch/bundles/BSDSubsystem_2.bundle/files/usr/bin/screen</filename>
    </removed>
    <removed>
      <filename>ipsw-patch/bundles/BSDSubsystem_2.bundle/files/usr/bin/script</filename>
    </removed>
    <removed>
      <filename>ipsw-patch/bundles/BSDSubsystem_2.bundle/files/usr/bin/sed</filename>
    </removed>
    <removed>
      <filename>ipsw-patch/bundles/BSDSubsystem_2.bundle/files/usr/bin/shlock</filename>
    </removed>
    <removed>
      <filename>ipsw-patch/bundles/BSDSubsystem_2.bundle/files/usr/bin/snap</filename>
    </removed>
    <removed>
      <filename>ipsw-patch/bundles/BSDSubsystem_2.bundle/files/usr/bin/sort</filename>
    </removed>
    <removed>
      <filename>ipsw-patch/bundles/BSDSubsystem_2.bundle/files/usr/bin/split</filename>
    </removed>
    <removed>
      <filename>ipsw-patch/bundles/BSDSubsystem_2.bundle/files/usr/bin/srelay</filename>
    </removed>
    <removed>
      <filename>ipsw-patch/bundles/BSDSubsystem_2.bundle/files/usr/bin/stat</filename>
    </removed>
    <removed>
      <filename>ipsw-patch/bundles/BSDSubsystem_2.bundle/files/usr/bin/su</filename>
    </removed>
    <removed>
      <filename>ipsw-patch/bundles/BSDSubsystem_2.bundle/files/usr/bin/sum</filename>
    </removed>
    <removed>
      <filename>ipsw-patch/bundles/BSDSubsystem_2.bundle/files/usr/bin/tabs</filename>
    </removed>
    <removed>
      <filename>ipsw-patch/bundles/BSDSubsystem_2.bundle/files/usr/bin/tail</filename>
    </removed>
    <removed>
      <filename>ipsw-patch/bundles/BSDSubsystem_2.bundle/files/usr/bin/tar</filename>
    </removed>
    <removed>
      <filename>ipsw-patch/bundles/BSDSubsystem_2.bundle/files/usr/bin/tcopy</filename>
    </removed>
    <removed>
      <filename>ipsw-patch/bundles/BSDSubsystem_2.bundle/files/usr/bin/tee</filename>
    </removed>
    <removed>
      <filename>ipsw-patch/bundles/BSDSubsystem_2.bundle/files/usr/bin/telnet</filename>
    </removed>
    <removed>
      <filename>ipsw-patch/bundles/BSDSubsystem_2.bundle/files/usr/bin/tftp</filename>
    </removed>
    <removed>
      <filename>ipsw-patch/bundles/BSDSubsystem_2.bundle/files/usr/bin/time</filename>
    </removed>
    <removed>
      <filename>ipsw-patch/bundles/BSDSubsystem_2.bundle/files/usr/bin/top</filename>
    </removed>
    <removed>
      <filename>ipsw-patch/bundles/BSDSubsystem_2.bundle/files/usr/bin/touch</filename>
    </removed>
    <removed>
      <filename>ipsw-patch/bundles/BSDSubsystem_2.bundle/files/usr/bin/tr</filename>
    </removed>
    <removed>
      <filename>ipsw-patch/bundles/BSDSubsystem_2.bundle/files/usr/bin/true</filename>
    </removed>
    <removed>
      <filename>ipsw-patch/bundles/BSDSubsystem_2.bundle/files/usr/bin/tsort</filename>
    </removed>
    <removed>
      <filename>ipsw-patch/bundles/BSDSubsystem_2.bundle/files/usr/bin/tty</filename>
    </removed>
    <removed>
      <filename>ipsw-patch/bundles/BSDSubsystem_2.bundle/files/usr/bin/ul</filename>
    </removed>
    <removed>
      <filename>ipsw-patch/bundles/BSDSubsystem_2.bundle/files/usr/bin/uname</filename>
    </removed>
    <removed>
      <filename>ipsw-patch/bundles/BSDSubsystem_2.bundle/files/usr/bin/unexpand</filename>
    </removed>
    <removed>
      <filename>ipsw-patch/bundles/BSDSubsystem_2.bundle/files/usr/bin/uniq</filename>
    </removed>
    <removed>
      <filename>ipsw-patch/bundles/BSDSubsystem_2.bundle/files/usr/bin/unvis</filename>
    </removed>
    <removed>
      <filename>ipsw-patch/bundles/BSDSubsystem_2.bundle/files/usr/bin/unzip</filename>
    </removed>
    <removed>
      <filename>ipsw-patch/bundles/BSDSubsystem_2.bundle/files/usr/bin/unzipsfx</filename>
    </removed>
    <removed>
      <filename>ipsw-patch/bundles/BSDSubsystem_2.bundle/files/usr/bin/uptime</filename>
    </removed>
    <removed>
      <filename>ipsw-patch/bundles/BSDSubsystem_2.bundle/files/usr/bin/users</filename>
    </removed>
    <removed>
      <filename>ipsw-patch/bundles/BSDSubsystem_2.bundle/files/usr/bin/vi</filename>
    </removed>
    <removed>
      <filename>ipsw-patch/bundles/BSDSubsystem_2.bundle/files/usr/bin/vim</filename>
    </removed>
    <removed>
      <filename>ipsw-patch/bundles/BSDSubsystem_2.bundle/files/usr/bin/vis</filename>
    </removed>
    <removed>
      <filename>ipsw-patch/bundles/BSDSubsystem_2.bundle/files/usr/bin/wall</filename>
    </removed>
    <removed>
      <filename>ipsw-patch/bundles/BSDSubsystem_2.bundle/files/usr/bin/wc</filename>
    </removed>
    <removed>
      <filename>ipsw-patch/bundles/BSDSubsystem_2.bundle/files/usr/bin/whereis</filename>
    </removed>
    <removed>
      <filename>ipsw-patch/bundles/BSDSubsystem_2.bundle/files/usr/bin/which</filename>
    </removed>
    <removed>
      <filename>ipsw-patch/bundles/BSDSubsystem_2.bundle/files/usr/bin/who</filename>
    </removed>
    <removed>
      <filename>ipsw-patch/bundles/BSDSubsystem_2.bundle/files/usr/bin/whoami</filename>
    </removed>
    <removed>
      <filename>ipsw-patch/bundles/BSDSubsystem_2.bundle/files/usr/bin/whois</filename>
    </removed>
    <removed>
      <filename>ipsw-patch/bundles/BSDSubsystem_2.bundle/files/usr/bin/xargs</filename>
    </removed>
    <removed>
      <filename>ipsw-patch/bundles/BSDSubsystem_2.bundle/files/usr/bin/yes</filename>
    </removed>
    <removed>
      <filename>ipsw-patch/bundles/BSDSubsystem_2.bundle/files/usr/bin/zcat</filename>
    </removed>
    <removed>
      <filename>ipsw-patch/bundles/BSDSubsystem_2.bundle/files/usr/bin/zcmp</filename>
    </removed>
    <removed>
      <filename>ipsw-patch/bundles/BSDSubsystem_2.bundle/files/usr/bin/zdiff</filename>
    </removed>
    <removed>
      <filename>ipsw-patch/bundles/BSDSubsystem_2.bundle/files/usr/bin/zegrep</filename>
    </removed>
    <removed>
      <filename>ipsw-patch/bundles/BSDSubsystem_2.bundle/files/usr/bin/zfgrep</filename>
    </removed>
    <removed>
      <filename>ipsw-patch/bundles/BSDSubsystem_2.bundle/files/usr/bin/zforce</filename>
    </removed>
    <removed>
      <filename>ipsw-patch/bundles/BSDSubsystem_2.bundle/files/usr/bin/zgrep</filename>
    </removed>
    <removed>
      <filename>ipsw-patch/bundles/BSDSubsystem_2.bundle/files/usr/bin/zless</filename>
    </removed>
    <removed>
      <filename>ipsw-patch/bundles/BSDSubsystem_2.bundle/files/usr/bin/zmore</filename>
    </removed>
    <removed>
      <filename>ipsw-patch/bundles/BSDSubsystem_2.bundle/files/usr/bin/znew</filename>
    </removed>
    <removed>
      <filename>ipsw-patch/bundles/BSDSubsystem_2.bundle/files/usr/bin/zprint</filename>
    </removed>
    <removed>
      <filename>ipsw-patch/bundles/BSDSubsystem_2.bundle/files/usr/lib/libarmfp.dylib</filename>
    </removed>
    <removed>
      <filename>ipsw-patch/bundles/BSDSubsystem_2.bundle/files/usr/lib/libgcc_s.1.dylib</filename>
    </removed>
    <removed>
      <filename>ipsw-patch/bundles/BSDSubsystem_2.bundle/files/usr/lib/libgcc_s_v6.1.dylib</filename>
    </removed>
    <removed>
      <filename>ipsw-patch/bundles/BSDSubsystem_2.bundle/files/usr/sbin/ac</filename>
    </removed>
    <removed>
      <filename>ipsw-patch/bundles/BSDSubsystem_2.bundle/files/usr/sbin/arp</filename>
    </removed>
    <removed>
      <filename>ipsw-patch/bundles/BSDSubsystem_2.bundle/files/usr/sbin/chown</filename>
    </removed>
    <removed>
      <filename>ipsw-patch/bundles/BSDSubsystem_2.bundle/files/usr/sbin/chroot</filename>
    </removed>
    <removed>
      <filename>ipsw-patch/bundles/BSDSubsystem_2.bundle/files/usr/sbin/cron</filename>
    </removed>
    <removed>
      <filename>ipsw-patch/bundles/BSDSubsystem_2.bundle/files/usr/sbin/fdisk</filename>
    </removed>
    <removed>
      <filename>ipsw-patch/bundles/BSDSubsystem_2.bundle/files/usr/sbin/ifconfig</filename>
    </removed>
    <removed>
      <filename>ipsw-patch/bundles/BSDSubsystem_2.bundle/files/usr/sbin/ioreg</filename>
    </removed>
    <removed>
      <filename>ipsw-patch/bundles/BSDSubsystem_2.bundle/files/usr/sbin/iostat</filename>
    </removed>
    <removed>
      <filename>ipsw-patch/bundles/BSDSubsystem_2.bundle/files/usr/sbin/kextstat</filename>
    </removed>
    <removed>
      <filename>ipsw-patch/bundles/BSDSubsystem_2.bundle/files/usr/sbin/makedbm</filename>
    </removed>
    <removed>
      <filename>ipsw-patch/bundles/BSDSubsystem_2.bundle/files/usr/sbin/md5</filename>
    </removed>
    <removed>
      <filename>ipsw-patch/bundles/BSDSubsystem_2.bundle/files/usr/sbin/mkfile</filename>
    </removed>
    <removed>
      <filename>ipsw-patch/bundles/BSDSubsystem_2.bundle/files/usr/sbin/mtree</filename>
    </removed>
    <removed>
      <filename>ipsw-patch/bundles/BSDSubsystem_2.bundle/files/usr/sbin/netstat</filename>
    </removed>
    <removed>
      <filename>ipsw-patch/bundles/BSDSubsystem_2.bundle/files/usr/sbin/ping</filename>
    </removed>
    <removed>
      <filename>ipsw-patch/bundles/BSDSubsystem_2.bundle/files/usr/sbin/pt_chown</filename>
    </removed>
    <removed>
      <filename>ipsw-patch/bundles/BSDSubsystem_2.bundle/files/usr/sbin/rmt</filename>
    </removed>
    <removed>
      <filename>ipsw-patch/bundles/BSDSubsystem_2.bundle/files/usr/sbin/route</filename>
    </removed>
    <removed>
      <filename>ipsw-patch/bundles/BSDSubsystem_2.bundle/files/usr/sbin/sysctl</filename>
    </removed>
    <removed>
      <filename>ipsw-patch/bundles/BSDSubsystem_2.bundle/files/usr/sbin/tcpdump</filename>
    </removed>
    <removed>
      <filename>ipsw-patch/bundles/BSDSubsystem_2.bundle/files/usr/sbin/traceroute</filename>
    </removed>
    <removed>
      <filename>ipsw-patch/bundles/BSDSubsystem_2.bundle/files/usr/sbin/vipw</filename>
    </removed>
    <removed>
      <filename>ipsw-patch/bundles/BSDSubsystem_2.bundle/files/usr/sbin/vmstat</filename>
    </removed>
    <removed>
      <filename>ipsw-patch/bundles/BSDSubsystem_2.bundle/files/usr/sbin/vpnd</filename>
    </removed>
    <removed>
      <filename>ipsw-patch/bundles/BSDSubsystem_2.bundle/files/usr/sbin/zdump</filename>
    </removed>
    <removed>
      <filename>ipsw-patch/bundles/BSDSubsystem_2.bundle/files/usr/sbin/zic</filename>
    </removed>
    <removed>
      <filename>ipsw-patch/bundles/BootNeuter.bundle/Info.plist</filename>
    </removed>
    <removed>
      <filename>ipsw-patch/bundles/BootNeuter.bundle/files/Applications/BootNeuter.app/BootNeuter</filename>
    </removed>
    <removed>
      <filename>ipsw-patch/bundles/BootNeuter.bundle/files/Applications/BootNeuter.app/Default.png</filename>
    </removed>
    <removed>
      <filename>ipsw-patch/bundles/BootNeuter.bundle/files/Applications/BootNeuter.app/Info.plist</filename>
    </removed>
    <removed>
      <filename>ipsw-patch/bundles/BootNeuter.bundle/files/Applications/BootNeuter.app/bin/chmod</filename>
    </removed>
    <removed>
      <filename>ipsw-patch/bundles/BootNeuter.bundle/files/Applications/BootNeuter.app/bin/killall</filename>
    </removed>
    <removed>
      <filename>ipsw-patch/bundles/BootNeuter.bundle/files/Applications/BootNeuter.app/firmware/ADD_FILES_HERE</filename>
    </removed>
    <removed>
      <filename>ipsw-patch/bundles/BootNeuter.bundle/files/Applications/BootNeuter.app/icon.png</filename>
    </removed>
    <removed>
      <filename>ipsw-patch/bundles/BootNeuter.bundle/files/System/Library/LaunchDaemons/com.apple.SpringBoard.plist</filename>
    </removed>
    <removed>
      <filename>ipsw-patch/bundles/BootNeuter.bundle/files/System/Library/LaunchDaemons/com.devteam.bootneuter.auto.plist</filename>
    </removed>
    <removed>
      <filename>ipsw-patch/bundles/Installer.bundle/Info.plist</filename>
    </removed>
    <removed>
      <filename>ipsw-patch/bundles/Installer.bundle/files/Applications/Installer.app/AppTapp.framework/AppTapp</filename>
    </removed>
    <removed>
      <filename>ipsw-patch/bundles/Installer.bundle/files/Applications/Installer.app/AppTapp.framework/Info.plist</filename>
    </removed>
    <removed>
      <filename>ipsw-patch/bundles/Installer.bundle/files/Applications/Installer.app/Background.png</filename>
    </removed>
    <removed>
      <filename>ipsw-patch/bundles/Installer.bundle/files/Applications/Installer.app/Category.png</filename>
    </removed>
    <removed>
      <filename>ipsw-patch/bundles/Installer.bundle/files/Applications/Installer.app/CategorySmart.png</filename>
    </removed>
    <removed>
      <filename>ipsw-patch/bundles/Installer.bundle/files/Applications/Installer.app/Default.png</filename>
    </removed>
    <removed>
      <filename>ipsw-patch/bundles/Installer.bundle/files/Applications/Installer.app/Featured.png</filename>
    </removed>
    <removed>
      <filename>ipsw-patch/bundles/Installer.bundle/files/Applications/Installer.app/FeaturedSelected.png</filename>
    </removed>
    <removed>
      <filename>ipsw-patch/bundles/Installer.bundle/files/Applications/Installer.app/Info.plist</filename>
    </removed>
    <removed>
      <filename>ipsw-patch/bundles/Installer.bundle/files/Applications/Installer.app/Install.png</filename>
    </removed>
    <removed>
      <filename>ipsw-patch/bundles/Installer.bundle/files/Applications/Installer.app/InstallSelected.png</filename>
    </removed>
    <removed>
      <filename>ipsw-patch/bundles/Installer.bundle/files/Applications/Installer.app/Installer</filename>
    </removed>
    <removed>
      <filename>ipsw-patch/bundles/Installer.bundle/files/Applications/Installer.app/Installer.idb</filename>
    </removed>
    <removed>
      <filename>ipsw-patch/bundles/Installer.bundle/files/Applications/Installer.app/Package.png</filename>
    </removed>
    <removed>
      <filename>ipsw-patch/bundles/Installer.bundle/files/Applications/Installer.app/PackageNew.png</filename>
    </removed>
    <removed>
      <filename>ipsw-patch/bundles/Installer.bundle/files/Applications/Installer.app/Source.png</filename>
    </removed>
    <removed>
      <filename>ipsw-patch/bundles/Installer.bundle/files/Applications/Installer.app/SourceTrusted.png</filename>
    </removed>
    <removed>
      <filename>ipsw-patch/bundles/Installer.bundle/files/Applications/Installer.app/Sources.png</filename>
    </removed>
    <removed>
      <filename>ipsw-patch/bundles/Installer.bundle/files/Applications/Installer.app/SourcesSelected.png</filename>
    </removed>
    <removed>
      <filename>ipsw-patch/bundles/Installer.bundle/files/Applications/Installer.app/Uninstall.png</filename>
    </removed>
    <removed>
      <filename>ipsw-patch/bundles/Installer.bundle/files/Applications/Installer.app/UninstallSelected.png</filename>
    </removed>
    <removed>
      <filename>ipsw-patch/bundles/Installer.bundle/files/Applications/Installer.app/Update.png</filename>
    </removed>
    <removed>
      <filename>ipsw-patch/bundles/Installer.bundle/files/Applications/Installer.app/UpdateSelected.png</filename>
    </removed>
    <removed>
      <filename>ipsw-patch/bundles/Installer.bundle/files/Applications/Installer.app/icon.png</filename>
    </removed>
    <removed>
      <filename>ipsw-patch/bundles/Installer.bundle/files/var/mobile/Library/Installer/LocalPackages.plist</filename>
    </removed>
    <removed>
      <filename>ipsw-patch/bundles/Installer.bundle/files/var/mobile/Library/Installer/PackageSources.plist</filename>
    </removed>
    <removed>
      <filename>ipsw-patch/bundles/Installer.bundle/files/var/mobile/Library/Installer/RemotePackages.plist</filename>
    </removed>
    <removed>
      <filename>ipsw-patch/bundles/Installer.bundle/files/var/mobile/Library/Installer/TrustedSources.plist</filename>
    </removed>
    <removed>
      <filename>ipsw-patch/bundles/OpenSSH.bundle/Info.plist</filename>
    </removed>
    <removed>
      <filename>ipsw-patch/bundles/OpenSSH.bundle/files/Library/LaunchDaemons/com.openssh.sshd.plist</filename>
    </removed>
    <removed>
      <filename>ipsw-patch/bundles/OpenSSH.bundle/files/etc/ssh_config</filename>
    </removed>
    <removed>
      <filename>ipsw-patch/bundles/OpenSSH.bundle/files/etc/sshd_config</filename>
    </removed>
    <removed>
      <filename>ipsw-patch/bundles/OpenSSH.bundle/files/usr/bin/scp</filename>
    </removed>
    <removed>
      <filename>ipsw-patch/bundles/OpenSSH.bundle/files/usr/bin/sftp</filename>
    </removed>
    <removed>
      <filename>ipsw-patch/bundles/OpenSSH.bundle/files/usr/bin/ssh</filename>
    </removed>
    <removed>
      <filename>ipsw-patch/bundles/OpenSSH.bundle/files/usr/bin/ssh-add</filename>
    </removed>
    <removed>
      <filename>ipsw-patch/bundles/OpenSSH.bundle/files/usr/bin/ssh-agent</filename>
    </removed>
    <removed>
      <filename>ipsw-patch/bundles/OpenSSH.bundle/files/usr/bin/ssh-keygen</filename>
    </removed>
    <removed>
      <filename>ipsw-patch/bundles/OpenSSH.bundle/files/usr/bin/ssh-keyscan</filename>
    </removed>
    <removed>
      <filename>ipsw-patch/bundles/OpenSSH.bundle/files/usr/libexec/sftp-server</filename>
    </removed>
    <removed>
      <filename>ipsw-patch/bundles/OpenSSH.bundle/files/usr/libexec/ssh-keysign</filename>
    </removed>
    <removed>
      <filename>ipsw-patch/bundles/OpenSSH.bundle/files/usr/libexec/ssh-rand-helper</filename>
    </removed>
    <removed>
      <filename>ipsw-patch/bundles/OpenSSH.bundle/files/usr/libexec/sshd-keygen-wrapper</filename>
    </removed>
    <removed>
      <filename>ipsw-patch/bundles/OpenSSH.bundle/files/usr/sbin/sshd</filename>
    </removed>
    <removed>
      <filename>ipsw-patch/bundles/OpenSSH_2.bundle/Info.plist</filename>
    </removed>
    <removed>
      <filename>ipsw-patch/bundles/OpenSSH_2.bundle/files/System/Library/LaunchDaemons/com.devteam.openssh.sshd.plist</filename>
    </removed>
    <removed>
      <filename>ipsw-patch/bundles/OpenSSH_2.bundle/files/usr/local/bin/scp</filename>
    </removed>
    <removed>
      <filename>ipsw-patch/bundles/OpenSSH_2.bundle/files/usr/local/bin/sftp</filename>
    </removed>
    <removed>
      <filename>ipsw-patch/bundles/OpenSSH_2.bundle/files/usr/local/bin/ssh</filename>
    </removed>
    <removed>
      <filename>ipsw-patch/bundles/OpenSSH_2.bundle/files/usr/local/bin/ssh-add</filename>
    </removed>
    <removed>
      <filename>ipsw-patch/bundles/OpenSSH_2.bundle/files/usr/local/bin/ssh-agent</filename>
    </removed>
    <removed>
      <filename>ipsw-patch/bundles/OpenSSH_2.bundle/files/usr/local/bin/ssh-keygen</filename>
    </removed>
    <removed>
      <filename>ipsw-patch/bundles/OpenSSH_2.bundle/files/usr/local/bin/ssh-keyscan</filename>
    </removed>
    <removed>
      <filename>ipsw-patch/bundles/OpenSSH_2.bundle/files/usr/local/etc/moduli</filename>
    </removed>
    <removed>
      <filename>ipsw-patch/bundles/OpenSSH_2.bundle/files/usr/local/etc/ssh_config</filename>
    </removed>
    <removed>
      <filename>ipsw-patch/bundles/OpenSSH_2.bundle/files/usr/local/etc/sshd_config</filename>
    </removed>
    <removed>
      <filename>ipsw-patch/bundles/OpenSSH_2.bundle/files/usr/local/libexec/sftp-server</filename>
    </removed>
    <removed>
      <filename>ipsw-patch/bundles/OpenSSH_2.bundle/files/usr/local/libexec/ssh-keysign</filename>
    </removed>
    <removed>
      <filename>ipsw-patch/bundles/OpenSSH_2.bundle/files/usr/local/libexec/sshd-keygen-wrapper</filename>
    </removed>
    <removed>
      <filename>ipsw-patch/bundles/OpenSSH_2.bundle/files/usr/local/sbin/sshd</filename>
    </removed>
    <removed>
      <filename>ipsw-patch/bundles/YoutubeActivation.bundle/Info.plist</filename>
    </removed>
    <removed>
      <filename>ipsw-patch/bundles/YoutubeActivation.bundle/files/var/root/Library/Lockdown/data_ark.plist</filename>
    </removed>
    <removed>
      <filename>ipsw-patch/bundles/YoutubeActivation.bundle/files/var/root/Library/Lockdown/device_private_key.pem</filename>
    </removed>
    <removed>
      <filename>ipsw-patch/bundles/YoutubeActivation.bundle/files/var/root/Library/Lockdown/device_public_key.pem</filename>
    </removed>
    <removed>
      <filename>ipsw-patch/retroapple.png</filename>
    </removed>
    <removed>
      <filename>minizip/Makefile</filename>
    </removed>
    <removed>
      <filename>xpwn/Makefile</filename>
    </removed>
  </removed>
  <parents type="array">
    <parent>
      <id>7ed789600a3f0d7a011c64661fb3e7904717393e</id>
    </parent>
    <parent>
      <id>9f8b5e8debdf93a3d729f1c8d9d1e54bc4ef30de</id>
    </parent>
  </parents>
  <author>
    <name>planetbeing</name>
    <email>planetbeing@gmail.com</email>
  </author>
  <url>http://github.com/planetbeing/xpwn/commit/1ed362af397ec9da8cce0fd1dabc7e781c1e0423</url>
  <id>1ed362af397ec9da8cce0fd1dabc7e781c1e0423</id>
  <committed-date>2008-07-20T23:02:10-07:00</committed-date>
  <authored-date>2008-07-20T23:02:10-07:00</authored-date>
  <message>Merge branch 'master' of git://github.com/planetbeing/xpwn</message>
  <tree>3cd4dbd3f8131ec50ae2effc87dbf98c0fcd6a99</tree>
  <committer>
    <name>planetbeing</name>
    <email>planetbeing@gmail.com</email>
  </committer>
</commit>
