mς TγΈEc@s‘dkZdklZdklZlZlZlZdkl Z dk l Z l Z dk lZddd„Zd„Zd fd „ƒYZdS( N(s FileIterator(s TRANS_HDRs TRANS_HDR_LENsDATA_HDRs DATA_HDR_LEN(s TimeStamp(su64sget_pickle_metadata(s zodb_unpickleicCs t|ƒ}xƒt|ƒD]u\} } |o3|d| t| i ƒt | i ƒ| i fIJn*|d| t| i ƒt | i ƒfIJ|d| i | i | ifIJxγt| ƒD]Υ\}}|idjod}d} n9t|iƒ\}}dt|iƒ} d||f}|iod|i} nd} |iod t|iƒ} nd} |d |t|iƒ| | || fIJq΅WqW|iƒdS( Ns'Trans #%05d tid=%016x time=%s offset=%dsTrans #%05d tid=%016x time=%ss$ status=%r user=%r description=%rs undo or abort of object creationts size=%ds%s.%ss version=%rs bp=%016xs% data #%05d oid=%016x%s%s class=%s%s(t FileIteratortpathtitert enumeratetittranst with_offsettfiletu64ttidt TimeStampt_poststatustusert descriptiontjtrectdatatNonet fullclasstsizetget_pickle_metadatatmodnamet classnametlentversiontdata_txntbptoidtclose(RRRRRRRRRRRRRR((t6/data/zmath/zope/lib/python/ZODB/FileStorage/fsdump.pytfsdumps.  3)     1cCsdt|ƒS(Ns%016x(R tp64(R!((Rtfmt<stDumpercBs5tZdZed„Zd„Zd„Zd„ZRS(s8A very verbose dumper for debuggin FileStorage problems.cCst|dƒ|_||_dS(Ntrb(topenRtselfRtdest(R&RR'((Rt__init__EscCsM|iidƒ}|iddIJ|id|IJx|iƒoq7WdS(Nit*i<sfile identifier: %r(R&RtreadtfidR'tdump_txn(R&R+((RtdumpIs  cCsΊ|iiƒ}|iitƒ}|ptSnti t |ƒ\} } }} }}|| }|iddIJ|id|IJ|id|IJ|idt| ƒIJ|id| IJ|id|IJd} }}| o|ii| ƒ} n|o|ii|ƒ}n|o|ii|ƒ}n|id | IJ|id |IJ|id |IJx(|iiƒ|jo|i|ƒqeW|iid ƒ} |id t| ƒIJdS(Nt=i<s offset: %ds end pos: %dstransaction id: %ss trec len: %ds status: %rRsuser: %rsdescription: %rslen(extra): %disredundant trec len: %di(R&RttelltposR*t TRANS_HDR_LENthtFalsetstructtunpackt TRANS_HDRR ttlenR tultdlteltendR'R"Rtdescrtextrat dump_datatstlenR (R&R R:R9R<R=R2R;R0R8R?R7R R((RR,Ps8$ c Csͺ|iiƒ}|iitƒ}t|ƒtjpt‚t i t |ƒ\}}} }}} |iddIJ|id|IJ|idt|ƒIJ|idt|ƒIJ|id| IJ|id|IJ|oy|iidƒ}|iidƒ} |ii|ƒ}|id |IJ|id t|ƒIJ|id t| ƒIJn|id | IJ|ii| ƒ| p-|iidƒ} |id t| ƒIJndS(Nt-i<s offset: %dsoid: %ss revid: %ssprevious record offset: %dstransaction offset: %dis version: %rsnon-version data offset: %ds previous version data offset: %ds len(data): %dsbackpointer: %d(R&RR/R0R*t DATA_HDR_LENR2RtAssertionErrorR4R5tDATA_HDRRtrevidtprevttloctvlentdlenR'R"tpnvt sprevdataRR tsbp( R&RFRIRGR2RR0RDRRJRKRERH((RR>ms,$(t__name__t __module__t__doc__RR(R-R,R>(((RR#@s    (R4tZODB.FileStorageRtZODB.FileStorage.formatR6R1RCRAtZODB.TimeStampR t ZODB.utilsR RtZODB.tests.StorageTestBaset zodb_unpickleRR R"R#( R R1R4RARR R"R R6RCRRTR#((Rt?s    %