mirror of
https://github.com/unidoc/unioffice.git
synced 2025-05-02 22:17:07 +08:00
12 lines
34 KiB
Go
12 lines
34 KiB
Go
//
|
|
// Copyright 2020 FoxyUtils ehf. All rights reserved.
|
|
//
|
|
// This is a commercial product and requires a license to operate.
|
|
// A trial license can be obtained at https://unidoc.io
|
|
//
|
|
// DO NOT EDIT: generated by unitwist Go source code obfuscator.
|
|
//
|
|
// Use of this source code is governed by the UniDoc End User License Agreement
|
|
// terms that can be accessed at https://unidoc.io/eula/
|
|
|
|
package mscfb ;import (_f "bytes";_a "encoding/binary";_cc "fmt";_af "github.com/richardlehane/msoleps/types";_db "github.com/unidoc/unioffice/internal/mscfb/rw";_ec "io";_cf "os";_e "strconv";_d "time";_cb "unicode";_cg "unicode/utf16";);func _ced (_bebb *directoryEntryFields )(*_f .Buffer ,error ){_aff :=_f .NewBuffer ([]byte {});for _ ,_bfag :=range _bebb ._bda {if _cgfe :=_a .Write (_aff ,_a .LittleEndian ,&_bfag );_cgfe !=nil {return nil ,_cgfe ;};};if _dec :=_a .Write (_aff ,_a .LittleEndian ,&_bebb ._g );_dec !=nil {return nil ,_dec ;};if _cdd :=_a .Write (_aff ,_a .LittleEndian ,&_bebb ._afg );_cdd !=nil {return nil ,_cdd ;};if _ffc :=_a .Write (_aff ,_a .LittleEndian ,&_bebb ._ed );_ffc !=nil {return nil ,_ffc ;};if _gddg :=_a .Write (_aff ,_a .LittleEndian ,&_bebb ._ae );_gddg !=nil {return nil ,_gddg ;};if _ggb :=_a .Write (_aff ,_a .LittleEndian ,&_bebb ._bf );_ggb !=nil {return nil ,_ggb ;};if _fbc :=_a .Write (_aff ,_a .LittleEndian ,&_bebb ._gg );_fbc !=nil {return nil ,_fbc ;};if _daa :=_a .Write (_aff ,_a .LittleEndian ,&_bebb ._be .DataA );_daa !=nil {return nil ,_daa ;};if _ccg :=_a .Write (_aff ,_a .LittleEndian ,&_bebb ._be .DataB );_ccg !=nil {return nil ,_ccg ;};if _fdac :=_a .Write (_aff ,_a .LittleEndian ,&_bebb ._be .DataC );_fdac !=nil {return nil ,_fdac ;};if _ ,_cgg :=_aff .Write (_bebb ._be .DataD [:]);_cgg !=nil {return nil ,_cgg ;};if _ ,_eeb :=_aff .Write (_bebb ._ge [:]);_eeb !=nil {return nil ,_eeb ;};if _cdf :=_a .Write (_aff ,_a .LittleEndian ,&_bebb ._ga .Low );_cdf !=nil {return nil ,_cdf ;};if _edeb :=_a .Write (_aff ,_a .LittleEndian ,&_bebb ._ga .High );_edeb !=nil {return nil ,_edeb ;};if _dcg :=_a .Write (_aff ,_a .LittleEndian ,&_bebb ._eg .Low );_dcg !=nil {return nil ,_dcg ;};if _ccc :=_a .Write (_aff ,_a .LittleEndian ,&_bebb ._eg .High );_ccc !=nil {return nil ,_ccc ;};if _gfb :=_a .Write (_aff ,_a .LittleEndian ,&_bebb ._gb );_gfb !=nil {return nil ,_gfb ;};if _ ,_eba :=_aff .Write (_bebb ._ea [:]);_eba !=nil {return nil ,_eba ;};return _aff ,nil ;};func (_bgd *Reader )exportFAT (_dcf *_db .Writer ,_gfbe []uint32 )error {if _bgd ._gfg ._ffb ==0{return nil ;};_egfaf :=_f .NewBuffer ([]byte {});if _acgc :=_a .Write (_egfaf ,_a .LittleEndian ,_bfce );_acgc !=nil {return _acgc ;};for _bbed :=0;_bbed < len (_gfbe )-1;_bbed ++{for _bgb :=_gfbe [_bbed ];_bgb < _gfbe [_bbed +1]-1;_bgb ++{if _bfaa :=_a .Write (_egfaf ,_a .LittleEndian ,_bgb );_bfaa !=nil {return _bfaa ;};};if _cdag :=_a .Write (_egfaf ,_a .LittleEndian ,_beag );_cdag !=nil {return _cdag ;};};_ddbg :=512;for _ ,_cdc :=range _egfaf .Bytes (){if _eecf :=_dcf .WriteByteAt (_cdc ,_ddbg );_eecf !=nil {return _eecf ;};_ddbg ++;};return nil ;};func (_bg *File )Read (b []byte )(int ,error ){if _bg .Size < 1||_bg ._bfd >=_bg .Size {return 0,_ec .EOF ;};_fa :=len (b );if int64 (_fa )> _bg .Size -_bg ._bfd {_fa =int (_bg .Size -_bg ._bfd );};_ac ,_abe :=_bg .stream (_fa );if _abe !=nil {return 0,_abe ;};var _dbf ,_aa int ;for _ ,_cga :=range _ac {_dac :=_dbf +int (_cga [1]);if _dac < _dbf ||_dac > _fa {return 0,Error {ErrRead ,"\u0062a\u0064 \u0072\u0065\u0061\u0064\u0020\u006c\u0065\u006e\u0067\u0074\u0068",int64 (_dac )};};_ddc ,_gdf :=_bg ._aeb ._fdaf .ReadAt (b [_dbf :_dac ],_cga [0]);_aa =_aa +_ddc ;if _gdf !=nil {_bg ._bfd +=int64 (_aa );return _aa ,Error {ErrRead ,"\u0075n\u0064\u0065\u0072\u006c\u0079\u0069\u006e\u0067\u0020\u0072\u0065a\u0064\u0065\u0072\u0020\u0066\u0061\u0069\u006c\u0020\u0028"+_gdf .Error ()+"\u0029",int64 (_dbf )};};_dbf =_dac ;};_bg ._bfd +=int64 (_aa );if _aa !=_fa {_abe =Error {ErrRead ,"\u0062\u0079\u0074e\u0073\u0020\u0072\u0065\u0061\u0064\u0020\u0064\u006f\u0020\u006e\u006f\u0074\u0020\u006d\u0061\u0074\u0063\u0068\u0020\u0065\u0078\u0070\u0065\u0063\u0074\u0065\u0064\u0020r\u0065\u0061\u0064\u0020\u0073\u0069\u007a\u0065",int64 (_aa )};}else if _aa < len (b ){_abe =_ec .EOF ;};return _aa ,_abe ;};type File struct{Name string ;Initial uint16 ;Path []string ;Size int64 ;_bfd int64 ;_de uint32 ;_agb int64 ;*directoryEntryFields ;_aeb *Reader ;};func (_bea *File )Modified ()_d .Time {return _bea ._eg .Time ()};func (_dca fileInfo )IsDir ()bool {return _dca .mode ().IsDir ()};func _ce (_dab uint16 ,_cae *File ){_cgc (_cae );if _cae ._afg !=_bd {return ;};if _dab > 3{_cae .Size =int64 (_a .LittleEndian .Uint64 (_cae ._ea [:]));}else {_cae .Size =int64 (_a .LittleEndian .Uint32 (_cae ._ea [:4]));};};func (_ddcd *Reader )getOffset (_ggc uint32 ,_dadd bool )(int64 ,error ){if _dadd {_cfac :=_ddcd ._becg /64;_edf :=int (_ggc /_cfac );if _edf >=len (_ddcd ._gfg ._fbgg ){return 0,Error {ErrRead ,"\u006di\u006e\u0069s\u0065\u0063\u0074o\u0072\u0020\u006e\u0075\u006d\u0062\u0065r\u0020\u0069\u0073\u0020\u006f\u0075t\u0073\u0069\u0064\u0065\u0020\u006d\u0069\u006e\u0069\u0073\u0065c\u0074\u006f\u0072\u0020\u0072\u0061\u006e\u0067\u0065",int64 (_edf )};};_afdb :=_ggc %_cfac ;return int64 ((_ddcd ._gfg ._fbgg [_edf ]+1)*_ddcd ._becg +_afdb *64),nil ;};return _dfg (_ddcd ._becg ,_ggc ),nil ;};type slicer interface{Slice (_eeeg int64 ,_eedb int )([]byte ,error );};func (_aacf *Reader )Export ()([]byte ,error ){_ecda :=_db .NewWriter ();if _ggbd :=_aacf .exportHeader (_ecda );_ggbd !=nil {return nil ,_ggbd ;};if _fgbc :=_ecda .FillWithByte (512,_cedg );_fgbc !=nil {return nil ,_fgbc ;};_gfbb :=[]uint32 {};if _dfe :=_aacf .exportDifats (_ecda );_dfe !=nil {return nil ,_dfe ;};_egb ,_eag ,_ffe :=_aacf .exportMiniStream ();if _ffe !=nil {return nil ,_ffe ;};_gfbb =append (_gfbb ,uint32 (_ecda .Len ())/_aacf ._becg );if _fdcg :=_aacf .exportDirEntries (_ecda );_fdcg !=nil {return nil ,_fdcg ;};_gfbb =append (_gfbb ,uint32 (_ecda .Len ())/_aacf ._becg );if _ ,_egd :=_egb .WriteTo (_ecda );_egd !=nil {return nil ,_egd ;};_gfbb =append (_gfbb ,uint32 (_ecda .Len ())/_aacf ._becg );if _ ,_gaed :=_eag .WriteTo (_ecda );_gaed !=nil {return nil ,_gaed ;};_gfbb =append (_gfbb ,uint32 (_ecda .Len ())/_aacf ._becg );if _bdba :=_aacf .exportFAT (_ecda ,_gfbb );_bdba !=nil {return nil ,_bdba ;};return _ecda .Bytes (),nil ;};func (_bcfe *File )ReadAt (p []byte ,off int64 )(_gdd int ,_bcfc error ){_ebd ,_afd ,_eac :=_bcfe ._bfd ,_bcfe ._agb ,_bcfe ._de ;_ ,_bcfc =_bcfe .Seek (off ,0);if _bcfc ==nil {_gdd ,_bcfc =_bcfe .Read (p );};_bcfe ._bfd ,_bcfe ._agb ,_bcfe ._de =_ebd ,_afd ,_eac ;return _gdd ,_bcfc ;};const (_cec uint32 =0xFFFFFFFA;_eef uint32 =0xFFFFFFFC;_bfce uint32 =0xFFFFFFFD;_beag uint32 =0xFFFFFFFE;_cccd uint32 =0xFFFFFFFF;_cedg byte =0xFF;_gce uint32 =0xFFFFFFFA;_ggd uint32 =0xFFFFFFFF;);type Error struct{_gbd int ;_facc string ;_cbeac int64 ;};func (_fgc *File )WriteAt (p []byte ,off int64 )(_ccbb int ,_dbe error ){_afe ,_bcfa ,_dba :=_fgc ._bfd ,_fgc ._agb ,_fgc ._de ;_ ,_dbe =_fgc .Seek (off ,0);if _dbe ==nil {_ccbb ,_dbe =_fgc .Write (p );};_fgc ._bfd ,_fgc ._agb ,_fgc ._de =_afe ,_bcfa ,_dba ;return _ccbb ,_dbe ;};func (_bdc *Reader )findNextFreeSector (_eefg bool )(uint32 ,error ){_faf :=_bdc .findFatLocsOffset (_eefg );_gff :=uint32 (0);_bbaad :=_bdc ._becg /4;for {_cffb ,_fdc :=_bdc .readAt (_faf ,4);if _fdc !=nil {return 0,Error {ErrRead ,"\u0062\u0061\u0064\u0020\u0072\u0065\u0061\u0064\u0020\u0066i\u006e\u0064\u0069\u006e\u0067\u0020\u006ee\u0078\u0074\u0020\u0073\u0065\u0063\u0074\u006f\u0072\u0020\u0028"+_fdc .Error ()+"\u0029",_faf };};_fbcc :=_a .LittleEndian .Uint32 (_cffb );if _fbcc ==_cccd {break ;};if _gff >=_bbaad {return 0,Error {ErrRead ,"\u0065\u006e\u0064\u0020of\u0020\u006d\u0069\u006e\u0069\u0046\u0061\u0074\u0020\u0072\u0065\u0061\u0063\u0068e\u0064",_faf };};_gff ++;_faf +=4;};return _gff ,nil ;};func (_aac *Reader )exportDirEntries (_baf *_db .Writer )error {if int64 (_baf .Len ())!=_dfg (_aac ._becg ,_aac ._gfg ._efdd ){return Error {ErrWrite ,_cc .Sprintf ("I\u006e\u0063\u006f\u0072\u0072\u0065c\u0074\u0020\u0077\u0072\u0069\u0074\u0065\u0072\u0020l\u0065\u006e\u0067t\u0068:\u0020\u0025\u0076",_baf .Len ()),0};};for _ ,_daad :=range _aac ._bedd {_fdgc ,_fbgc :=_ced (_daad .directoryEntryFields );if _fbgc !=nil {return _fbgc ;};if _ ,_eafb :=_ec .Copy (_baf ,_fdgc );_eafb !=nil {return _eafb ;};};return nil ;};func (_fc *File )ID ()string {return _fc ._be .String ()};type fileInfo struct{*File };const (ErrFormat =iota ;ErrRead ;ErrSeek ;ErrWrite ;ErrTraverse ;);func (_dbed *File )Seek (offset int64 ,whence int )(int64 ,error ){var _aga int64 ;switch whence {default:return 0,Error {ErrSeek ,"\u0069\u006e\u0076\u0061\u006c\u0069\u0064\u0020\u0077h\u0065\u006e\u0063\u0065",int64 (whence )};case 0:_aga =offset ;case 1:_aga =_dbed ._bfd +offset ;case 2:_aga =_dbed .Size -offset ;};switch {case _aga < 0:return _dbed ._bfd ,Error {ErrSeek ,"\u0063\u0061\u006e'\u0074\u0020\u0073\u0065e\u006b\u0020\u0062\u0065\u0066\u006f\u0072e\u0020\u0073\u0074\u0061\u0072\u0074\u0020\u006f\u0066\u0020\u0046\u0069\u006c\u0065",_aga };case _aga >=_dbed .Size :return _dbed ._bfd ,Error {ErrSeek ,"c\u0061\u006e\u0027\u0074\u0020\u0073e\u0065\u006b\u0020\u0070\u0061\u0073\u0074\u0020\u0046i\u006c\u0065\u0020l\u0065n\u0067\u0074\u0068",_aga };case _aga ==_dbed ._bfd :return _aga ,nil ;case _aga > _dbed ._bfd :_gef :=_dbed ._bfd ;_dbed ._bfd =_aga ;return _dbed ._bfd ,_dbed .seek (_aga -_gef );};if _dbed ._agb >=_dbed ._bfd -_aga {_dbed ._agb =_dbed ._agb -(_dbed ._bfd -_aga );_dbed ._bfd =_aga ;return _dbed ._bfd ,nil ;};_dbed ._agb =0;_dbed ._de =_dbed ._gb ;_dbed ._bfd =_aga ;return _dbed ._bfd ,_dbed .seek (_aga );};func (_abd *Reader )traverse ()error {_abd .File =make ([]*File ,0,len (_abd ._bedd ));var (_agg func (int ,[]string );_gc error ;_ede int ;);_agg =func (_ddb int ,_caa []string ){_ede ++;if _ede > len (_abd ._bedd ){_gc =Error {ErrTraverse ,"\u0074\u0072\u0061\u0076\u0065\u0072\u0073\u0061\u006c\u0020\u0063o\u0075\u006e\u0074\u0065\u0072\u0020\u006f\u0076\u0065\u0072f\u006c\u006f\u0077",int64 (_ddb )};return ;};if _ddb < 0||_ddb >=len (_abd ._bedd ){_gc =Error {ErrTraverse ,"\u0069\u006c\u006ceg\u0061\u006c\u0020\u0074\u0072\u0061\u0076\u0065\u0072\u0073\u0061\u006c\u0020\u0069\u006e\u0064\u0065\u0078",int64 (_ddb )};return ;};_eee :=_abd ._bedd [_ddb ];if _eee ._ae !=_ggd {_agg (int (_eee ._ae ),_caa );};_abd .File =append (_abd .File ,_eee );_eee .Path =_caa ;if _eee ._gg !=_ggd {if _ddb > 0{_agg (int (_eee ._gg ),append (_caa ,_eee .Name ));}else {_agg (int (_eee ._gg ),_caa );};};if _eee ._bf !=_ggd {_agg (int (_eee ._bf ),_caa );};return ;};_agg (0,[]string {});return _gc ;};func (_dcbd *Reader )GetEntry (entryName string )(*File ,error ){for _cba ,_cbf :=_dcbd .Next ();_cbf ==nil ;_cba ,_cbf =_dcbd .Next (){if _cba .Name ==entryName {return _cba ,nil ;};};return nil ,Error {ErrTraverse ,"\u004e\u006f\u0020\u0065\u006e\u0074\u0072\u0079\u0020\u0066o\u0075\u006e\u0064\u0020\u0066\u006f\u0072 \u0067\u0069\u0076\u0065\u006e\u0020\u006e\u0061\u006d\u0065\u002e",0};};const (_ca uint8 =0x0;_ba uint8 =0x1;);func (_ecea *Reader )exportDifats (_bebf *_db .Writer )error {if _ecea ._gfg ._eed ==0{return nil ;};return nil ;};func (_edb *File )SetEntryContent (b []byte )error {if _dad :=_edb .ensureWriterAt ();_dad !=nil {return _dad ;};_edb .reset ();if _cee :=_edb .changeSize (int64 (len (b )));_cee !=nil {return _cee ;};_ ,_cdb :=_edb .Write (b );return _cdb ;};type headerFields struct{_ebb uint64 ;_ [16]byte ;_cdbgd uint16 ;_adfa uint16 ;_ [2]byte ;_cfa uint16 ;_ [2]byte ;_ [6]byte ;_bbaa uint32 ;_ffb uint32 ;_efdd uint32 ;_ [4]byte ;_ [4]byte ;_fff uint32 ;_ccdg uint32 ;_edbc uint32 ;_eed uint32 ;_gea [109]uint32 ;};func (_edbca *Reader )GetHeader ()*header {return _edbca ._gfg };func (_ade *File )Created ()_d .Time {return _ade ._ga .Time ()};func (_ggba *Reader )Read (b []byte )(_gcef int ,_eeg error ){if _ggba ._ecge >=len (_ggba .File ){return 0,_ec .EOF ;};return _ggba .File [_ggba ._ecge ].Read (b );};func (_ff *File )changeSize (_fda int64 )error {if _fda ==_ff .Size {return nil ;};var _efd *File ;for _ ,_bb :=range _ff ._aeb ._bedd {if _bb .Name ==_ff .Name {_efd =_bb ;break ;};};if _efd ==nil {return _cc .Errorf ("\u004e\u006f\u0020\u0064\u0069\u0072e\u0063\u0074\u006f\u0072\u0079\u0020\u0065\u006e\u0074\u0072\u0079\u0020\u0066o\u0072\u0020\u0061\u0020\u0066\u0069\u006ce\u003a\u0020\u0025\u0073",_ff .Name );};_ffd :=_f .NewBuffer ([]byte {});if _fg :=_a .Write (_ffd ,_a .LittleEndian ,_fda );_fg !=nil {return _fg ;};for _ccb ,_bge :=range _ffd .Bytes (){_efd ._ea [_ccb ]=_bge ;};var _cfb int64 ;var _fgb bool ;if _ff .Size < _bba {_fgb =true ;_cfb =int64 (_gba );}else {_cfb =int64 (_ff ._aeb ._becg );};_deg :=int ((_ff .Size -1)/_cfb )+1;_bfa :=int ((_fda -1)/_cfb )+1;if _deg < _bfa {_fag ,_ecg :=_ff .findLast (_fgb );if _ecg !=nil {return _ecg ;};_bfc ,_ecg :=_ff ._aeb .findNextFreeSector (_fgb );if _ecg !=nil {return _ecg ;};for _dgd :=_bfa -_deg ;_dgd > 0;_dgd --{if _aec :=_ff ._aeb .saveToFatLocs (_fag ,_bfc ,_fgb );_aec !=nil {return _aec ;};if _dgd > 1{_fag =_bfc ;_bfc ++;}else if _abc :=_ff ._aeb .saveToFatLocs (_bfc ,_beag ,_fgb );_abc !=nil {return _abc ;};};}else if _deg > _bfa {_gf :=_ff ._gb ;var _bcb error ;for _ada :=0;_ada < _bfa -1;_ada ++{_gf ,_bcb =_ff ._aeb .findNext (_gf ,_fgb );if _bcb !=nil {return _bcb ;};};if _fbg :=_ff ._aeb .saveToFatLocs (_gf ,_beag ,_fgb );_fbg !=nil {return _fbg ;};};_ff .Size =_fda ;return nil ;};func (_feb *Reader )Next ()(*File ,error ){_feb ._ecge ++;if _feb ._ecge >=len (_feb .File ){return nil ,_ec .EOF ;};return _feb .File [_feb ._ecge ],nil ;};func (_ccd *File )stream (_dcb int )([][2]int64 ,error ){var _aad bool ;var _ecb int ;var _gfc int64 ;if _ccd .Size < _bba {_aad =true ;_ecb =_dcb /int (_gba )+2;_gfc =int64 (_gba );}else {_ecb =_dcb /int (_ccd ._aeb ._becg )+2;_gfc =int64 (_ccd ._aeb ._becg );};_cff :=make ([][2]int64 ,0,_ecb );var _cbg ,_cbe int ;if _ccd ._agb > 0{_bad ,_fdb :=_ccd ._aeb .getOffset (_ccd ._de ,_aad );if _fdb !=nil {return nil ,_fdb ;};if _gfc -_ccd ._agb >=int64 (_dcb ){_cff =append (_cff ,[2]int64 {_bad +_ccd ._agb ,int64 (_dcb )});}else {_cff =append (_cff ,[2]int64 {_bad +_ccd ._agb ,_gfc -_ccd ._agb });};if _gfc -_ccd ._agb <=int64 (_dcb ){_ccd ._de ,_fdb =_ccd ._aeb .findNext (_ccd ._de ,_aad );if _fdb !=nil {return nil ,_fdb ;};_cbe +=int (_gfc -_ccd ._agb );_ccd ._agb =0;}else {_ccd ._agb +=int64 (_dcb );};if _cff [0][1]==int64 (_dcb ){return _cff ,nil ;};if _ccd ._de ==_beag {return nil ,Error {ErrRead ,"\u0075\u006ee\u0078\u0070\u0065\u0063\u0074\u0065\u0064\u0020\u0065\u0061\u0072\u006c\u0079\u0020\u0065\u006e\u0064\u0020\u006f\u0066\u0020\u0063ha\u0069\u006e",int64 (_ccd ._de )};};_cbg ++;};for {if _cbg >=cap (_cff ){return nil ,Error {ErrRead ,"\u0069\u006e\u0064\u0065x\u0020\u006f\u0076\u0065\u0072\u0072\u0075\u006e\u0073\u0020s\u0065c\u0074\u006f\u0072\u0020\u006c\u0065\u006eg\u0074\u0068",int64 (_cbg )};};_fdg ,_aade :=_ccd ._aeb .getOffset (_ccd ._de ,_aad );if _aade !=nil {return nil ,_aade ;};if _dcb -_cbe < int (_gfc ){_cff =append (_cff ,[2]int64 {_fdg ,int64 (_dcb -_cbe )});_ccd ._agb =int64 (_dcb -_cbe );return _add (_cff ),nil ;}else {_cff =append (_cff ,[2]int64 {_fdg ,_gfc });_cbe +=int (_gfc );_ccd ._de ,_aade =_ccd ._aeb .findNext (_ccd ._de ,_aad );if _aade !=nil {return nil ,_aade ;};if _cbe ==_dcb {return _add (_cff ),nil ;};};_cbg ++;};};func _add (_bbe [][2]int64 )[][2]int64 {_baa :=len (_bbe );for _dagg ,_bdb :=0,0;_dagg < _baa &&_bdb +1< len (_bbe );_dagg ++{if _bbe [_bdb ][0]+_bbe [_bdb ][1]==_bbe [_bdb +1][0]{_bbe [_bdb ][1]=_bbe [_bdb ][1]+_bbe [_bdb +1][1];for _dagf :=range _bbe [_bdb +1:len (_bbe )-1]{_bbe [_bdb +1+_dagf ]=_bbe [_dagf +_bdb +2];};_bbe =_bbe [:len (_bbe )-1];}else {_bdb +=1;};};return _bbe ;};func (_afc *File )seek (_df int64 )error {var _bed bool ;var _cfg int64 ;if _afc .Size < _bba {_bed =true ;_cfg =64;}else {_cfg =int64 (_afc ._aeb ._becg );};var _bfdc int64 ;var _ddde error ;if _afc ._agb > 0{if _cfg -_afc ._agb <=_df {_afc ._de ,_ddde =_afc ._aeb .findNext (_afc ._de ,_bed );if _ddde !=nil {return _ddde ;};_bfdc +=_cfg -_afc ._agb ;_afc ._agb =0;if _bfdc ==_df {return nil ;};}else {_afc ._agb +=_df ;return nil ;};if _afc ._de ==_beag {return Error {ErrRead ,"\u0075\u006ee\u0078\u0070\u0065\u0063\u0074\u0065\u0064\u0020\u0065\u0061\u0072\u006c\u0079\u0020\u0065\u006e\u0064\u0020\u006f\u0066\u0020\u0063ha\u0069\u006e",int64 (_afc ._de )};};};for {if _df -_bfdc < _cfg {_afc ._agb =_df -_bfdc ;return nil ;}else {_bfdc +=_cfg ;_afc ._de ,_ddde =_afc ._aeb .findNext (_afc ._de ,_bed );if _ddde !=nil {return _ddde ;};if _bfdc ==_df {return nil ;};};};};func (_fb fileInfo )ModTime ()_d .Time {return _fb .Modified ()};func (_caef *Reader )exportHeader (_egfa *_db .Writer )error {if _aab :=_a .Write (_egfa ,_a .LittleEndian ,&_caef ._gfg ._ebb );_aab !=nil {return _aab ;};if _fgff :=_egfa .Skip (16);_fgff !=nil {return _fgff ;};if _aed :=_a .Write (_egfa ,_a .LittleEndian ,&_caef ._gfg ._cdbgd );_aed !=nil {return _aed ;};if _edeg :=_a .Write (_egfa ,_a .LittleEndian ,&_caef ._gfg ._adfa );_edeg !=nil {return _edeg ;};if _ggdd :=_a .Write (_egfa ,_a .LittleEndian ,uint16 (0xfffe));_ggdd !=nil {return _ggdd ;};if _bbc :=_a .Write (_egfa ,_a .LittleEndian ,&_caef ._gfg ._cfa );_bbc !=nil {return _bbc ;};if _cad :=_a .Write (_egfa ,_a .LittleEndian ,uint16 (0x0006));_cad !=nil {return _cad ;};if _adc :=_egfa .Skip (6);_adc !=nil {return _adc ;};if _bgeb :=_a .Write (_egfa ,_a .LittleEndian ,&_caef ._gfg ._bbaa );_bgeb !=nil {return _bgeb ;};if _gdg :=_a .Write (_egfa ,_a .LittleEndian ,&_caef ._gfg ._ffb );_gdg !=nil {return _gdg ;};if _aef :=_a .Write (_egfa ,_a .LittleEndian ,&_caef ._gfg ._efdd );_aef !=nil {return _aef ;};if _gbdg :=_egfa .Skip (4);_gbdg !=nil {return _gbdg ;};if _efg :=_a .Write (_egfa ,_a .LittleEndian ,uint32 (0x00001000));_efg !=nil {return _efg ;};if _gafg :=_a .Write (_egfa ,_a .LittleEndian ,&_caef ._gfg ._fff );_gafg !=nil {return _gafg ;};if _gec :=_a .Write (_egfa ,_a .LittleEndian ,&_caef ._gfg ._ccdg );_gec !=nil {return _gec ;};if _ead :=_a .Write (_egfa ,_a .LittleEndian ,&_caef ._gfg ._edbc );_ead !=nil {return _ead ;};if _bfab :=_a .Write (_egfa ,_a .LittleEndian ,&_caef ._gfg ._eed );_bfab !=nil {return _bfab ;};for _ddcg :=0;_ddcg < 109;_ddcg ++{if _fcbg :=_a .Write (_egfa ,_a .LittleEndian ,&_caef ._gfg ._gea [_ddcg ]);_fcbg !=nil {return _fcbg ;};};return nil ;};func (_gab *Reader )readAt (_fcg int64 ,_adeb int )([]byte ,error ){if _gab ._ddf {_acf ,_ebc :=_gab ._fdaf .(slicer ).Slice (_fcg ,_adeb );if _ebc !=nil {return nil ,Error {ErrRead ,"\u0073\u006c\u0069\u0063er\u0020\u0072\u0065\u0061\u0064\u0020\u0065\u0072\u0072\u006f\u0072\u0020\u0028"+_ebc .Error ()+"\u0029",_fcg };};return _acf ,nil ;};if _adeb > len (_gab ._fge ){return nil ,Error {ErrRead ,"\u0072\u0065ad\u0020\u006c\u0065n\u0067\u0074\u0068\u0020gre\u0061te\u0072\u0020\u0074\u0068\u0061\u006e\u0020re\u0061\u0064\u0020\u0062\u0075\u0066\u0066e\u0072",int64 (_adeb )};};if _ ,_dbef :=_gab ._fdaf .ReadAt (_gab ._fge [:_adeb ],_fcg );_dbef !=nil {return nil ,Error {ErrRead ,_dbef .Error (),_fcg };};return _gab ._fge [:_adeb ],nil ;};func (_eaf *File )reset (){_eaf ._bfd =0;_eaf ._agb =0;_eaf ._de =_eaf ._gb };func (_gdc *File )FileInfo ()_cf .FileInfo {return fileInfo {_gdc }};func (_fcd *File )Write (b []byte )(int ,error ){if _fcd .Size < 1||_fcd ._bfd >=_fcd .Size {return 0,_ec .EOF ;};if _acg :=_fcd .ensureWriterAt ();_acg !=nil {return 0,_acg ;};_cab :=len (b );if int64 (_cab )> _fcd .Size -_fcd ._bfd {_cab =int (_fcd .Size -_fcd ._bfd );};_bacg ,_acc :=_fcd .stream (_cab );if _acc !=nil {return 0,_acc ;};var _agc ,_adf int ;for _ ,_dabd :=range _bacg {_dgc :=_agc +int (_dabd [1]);if _dgc < _agc ||_dgc > _cab {return 0,Error {ErrWrite ,"\u0062\u0061d\u0020\u0077\u0072i\u0074\u0065\u0020\u006c\u0065\u006e\u0067\u0074\u0068",int64 (_dgc )};};_gdfe ,_ecc :=_fcd ._aeb ._ecd .WriteAt (b [_agc :_dgc ],_dabd [0]);_adf =_adf +_gdfe ;if _ecc !=nil {_fcd ._bfd +=int64 (_adf );return _adf ,Error {ErrWrite ,"\u0075n\u0064\u0065\u0072\u006c\u0079\u0069\u006e\u0067\u0020\u0077\u0072i\u0074\u0065\u0072\u0020\u0066\u0061\u0069\u006c\u0020\u0028"+_ecc .Error ()+"\u0029",int64 (_agc )};};_agc =_dgc ;};_fcd ._bfd +=int64 (_adf );if _adf !=_cab {_acc =Error {ErrWrite ,"\u0062\u0079t\u0065\u0073\u0020\u0077\u0072\u0069\u0074\u0074\u0065\u006e\u0020\u0064\u006f\u0020\u006e\u006f\u0074\u0020\u006d\u0061\u0074\u0063\u0068\u0020\u0065\u0078\u0070\u0065\u0063\u0074\u0065\u0064\u0020\u0077\u0072\u0069\u0074\u0065\u0020\u0073\u0069\u007a\u0065",int64 (_adf )};}else if _adf < len (b ){_acc =_ec .EOF ;};return _adf ,_acc ;};func (_eacf *Reader )findNext (_fdgf uint32 ,_adb bool )(uint32 ,error ){_ded :=_eacf ._becg /4;_cac :=int (_fdgf /_ded );var _aeg uint32 ;if _adb {if _cac < 0||_cac >=len (_eacf ._gfg ._bef ){return 0,Error {ErrRead ,"\u006d\u0069\u006e\u0069\u0073e\u0063\u0074\u006f\u0072\u0020\u0069\u006e\u0064\u0065\u0078\u0020\u0069\u0073 \u006f\u0075\u0074\u0073\u0069\u0064\u0065\u0020\u006d\u0069\u006e\u0069\u0046\u0041\u0054\u0020\u0072\u0061\u006e\u0067\u0065",int64 (_cac )};};_aeg =_eacf ._gfg ._bef [_cac ];}else {if _cac < 0||_cac >=len (_eacf ._gfg ._bce ){return 0,Error {ErrRead ,"\u0046\u0041\u0054\u0020\u0069\u006e\u0064\u0065\u0078\u0020\u0069\u0073\u0020\u006f\u0075t\u0073i\u0064\u0065\u0020\u0044\u0049\u0046\u0041\u0054\u0020\u0072\u0061\u006e\u0067\u0065",int64 (_cac )};};_aeg =_eacf ._gfg ._bce [_cac ];};_bgc :=_fdgf %_ded ;_cbc :=_dfg (_eacf ._becg ,_aeg )+int64 (_bgc *4);_fgf ,_daeg :=_eacf .readAt (_cbc ,4);if _daeg !=nil {return 0,Error {ErrRead ,"\u0062\u0061\u0064\u0020\u0072\u0065\u0061\u0064\u0020\u0066i\u006e\u0064\u0069\u006e\u0067\u0020\u006ee\u0078\u0074\u0020\u0073\u0065\u0063\u0074\u006f\u0072\u0020\u0028"+_daeg .Error ()+"\u0029",_cbc };};_bdab :=_a .LittleEndian .Uint32 (_fgf );return _bdab ,nil ;};const _eb int =64+4*4+16+4+8*2+4+8;type Reader struct{_ddf bool ;_becg uint32 ;_fge []byte ;_gfg *header ;File []*File ;_bedd []*File ;_ecge int ;_fdaf _ec .ReaderAt ;_ecd _ec .WriterAt ;};func (_dgf *Reader )findFatLocsOffset (_egf bool )int64 {var _ebac uint32 ;if _egf {_ebac =_dgf ._gfg ._bef [0];}else {_ebac =_dgf ._gfg ._bce [0];};return _dfg (_dgf ._becg ,_ebac );};func (_dcc fileInfo )Size ()int64 {if _dcc ._afg !=_bd {return 0;};return _dcc .File .Size ;};func _ecca (_gaeb []byte )*headerFields {_agce :=&headerFields {};_agce ._ebb =_a .LittleEndian .Uint64 (_gaeb [:8]);_agce ._cdbgd =_a .LittleEndian .Uint16 (_gaeb [24:26]);_agce ._adfa =_a .LittleEndian .Uint16 (_gaeb [26:28]);_agce ._cfa =_a .LittleEndian .Uint16 (_gaeb [30:32]);_agce ._bbaa =_a .LittleEndian .Uint32 (_gaeb [40:44]);_agce ._ffb =_a .LittleEndian .Uint32 (_gaeb [44:48]);_agce ._efdd =_a .LittleEndian .Uint32 (_gaeb [48:52]);_agce ._fff =_a .LittleEndian .Uint32 (_gaeb [60:64]);_agce ._ccdg =_a .LittleEndian .Uint32 (_gaeb [64:68]);_agce ._edbc =_a .LittleEndian .Uint32 (_gaeb [68:72]);_agce ._eed =_a .LittleEndian .Uint32 (_gaeb [72:76]);var _daf int ;for _bca :=76;_bca < 512;_bca =_bca +4{_agce ._gea [_daf ]=_a .LittleEndian .Uint32 (_gaeb [_bca :_bca +4]);_daf ++;};return _agce ;};func (_cda *Reader )setDifats ()error {_cda ._gfg ._bce =_cda ._gfg ._gea [:];if _cda ._gfg ._eed ==0{return nil ;};_cbd :=(_cda ._becg /4)-1;_fad :=make ([]uint32 ,109,_cda ._gfg ._eed *_cbd +109);copy (_fad ,_cda ._gfg ._bce );_cda ._gfg ._bce =_fad ;_gaa :=_cda ._gfg ._edbc ;for _deb :=0;_deb < int (_cda ._gfg ._eed );_deb ++{_fdbg ,_bdf :=_cda .readAt (_dfg (_cda ._becg ,_gaa ),int (_cda ._becg ));if _bdf !=nil {return Error {ErrFormat ,"e\u0072r\u006f\u0072\u0020\u0073\u0065\u0074\u0074\u0069n\u0067\u0020\u0044\u0049FA\u0054\u0028"+_bdf .Error ()+"\u0029",int64 (_gaa )};};for _bgf :=0;_bgf < int (_cbd );_bgf ++{_cda ._gfg ._bce =append (_cda ._gfg ._bce ,_a .LittleEndian .Uint32 (_fdbg [_bgf *4:_bgf *4+4]));};_gaa =_a .LittleEndian .Uint32 (_fdbg [len (_fdbg )-4:]);};return nil ;};type header struct{*headerFields ;_bce []uint32 ;_bef []uint32 ;_fbgg []uint32 ;};func (_efc *Reader )setMiniStream ()error {if _efc ._bedd [0]._gb ==_beag ||_efc ._gfg ._fff ==_beag ||_efc ._gfg ._ccdg ==0{return nil ;};_ebe :=int (_efc ._gfg ._ccdg );_efc ._gfg ._bef =make ([]uint32 ,_ebe );_efc ._gfg ._bef [0]=_efc ._gfg ._fff ;for _bfbd :=1;_bfbd < _ebe ;_bfbd ++{_ebf ,_gbf :=_efc .findNext (_efc ._gfg ._bef [_bfbd -1],false );if _gbf !=nil {return Error {ErrFormat ,"s\u0065\u0074\u0074\u0069ng\u0020m\u0069\u006e\u0069\u0020\u0073t\u0072\u0065\u0061\u006d\u0020\u0028"+_gbf .Error ()+"\u0029",int64 (_efc ._gfg ._bef [_bfbd -1])};};_efc ._gfg ._bef [_bfbd ]=_ebf ;};_ebe =int (_efc ._becg /4*_efc ._gfg ._ccdg );_efc ._gfg ._fbgg =make ([]uint32 ,0,_ebe );_befd :=_efc ._bedd [0]._gb ;var _efe error ;for _befd !=_beag {_efc ._gfg ._fbgg =append (_efc ._gfg ._fbgg ,_befd );_befd ,_efe =_efc .findNext (_befd ,false );if _efe !=nil {return Error {ErrFormat ,"s\u0065\u0074\u0074\u0069ng\u0020m\u0069\u006e\u0069\u0020\u0073t\u0072\u0065\u0061\u006d\u0020\u0028"+_efe .Error ()+"\u0029",int64 (_befd )};};};return nil ;};type directoryEntryFields struct{_bda [32]uint16 ;_g uint16 ;_afg uint8 ;_ed uint8 ;_ae uint32 ;_bf uint32 ;_gg uint32 ;_be _af .Guid ;_ge [4]byte ;_ga _af .FileTime ;_eg _af .FileTime ;_gb uint32 ;_ea [8]byte ;};func (_cceg *Reader )Debug ()map[string ][]uint32 {_eegd :=map[string ][]uint32 {"s\u0065\u0063\u0074\u006f\u0072\u0020\u0073\u0069\u007a\u0065":[]uint32 {_cceg ._becg },"\u006d\u0069\u006e\u0069\u0020\u0066\u0061\u0074\u0020\u006c\u006f\u0063\u0073":_cceg ._gfg ._bef ,"\u006d\u0069n\u0069\u0020\u0073t\u0072\u0065\u0061\u006d\u0020\u006c\u006f\u0063\u0073":_cceg ._gfg ._fbgg ,"\u0064\u0069r\u0065\u0063\u0074o\u0072\u0079\u0020\u0073\u0065\u0063\u0074\u006f\u0072":[]uint32 {_cceg ._gfg ._efdd },"\u006d\u0069\u006e\u0069 s\u0074\u0072\u0065\u0061\u006d\u0020\u0073\u0074\u0061\u0072\u0074\u002f\u0073\u0069z\u0065":[]uint32 {_cceg .File [0]._gb ,_a .LittleEndian .Uint32 (_cceg .File [0]._ea [:])}};for _efde ,_gcda :=_cceg .Next ();_gcda ==nil ;_efde ,_gcda =_cceg .Next (){_eegd [_efde .Name +" \u0073\u0074\u0061\u0072\u0074\u002f\u0073\u0069\u007a\u0065"]=[]uint32 {_efde ._gb ,_a .LittleEndian .Uint32 (_efde ._ea [:])};};return _eegd ;};func (_ege Error )Typ ()int {return _ege ._gbd };func (_bgef *Reader )Created ()_d .Time {return _bgef .File [0].Created ()};const _gcd int =8+16+10+6+12+8+16+109*4;const (_ab uint8 =0x0;_b uint8 =0x1;_bd uint8 =0x2;_ef uint8 =0x5;);func (_eafd *Reader )exportMiniStream ()(*_db .Writer ,*_db .Writer ,error ){_afcb ,_dafd :=_db .NewWriter (),_db .NewWriter ();_egee :=uint32 (0);for _ ,_eea :=range _eafd .File {if _eea .Size ==0{continue ;};_eea .reset ();_eea ._gb =_egee ;_cbae :=int (_eea .Size )/int (_gba );if int (_eea .Size )%int (_gba )!=0{_cbae ++;};for _egdd :=1;_egdd < _cbae ;_egdd ++{_egee ++;if _dea :=_a .Write (_afcb ,_a .LittleEndian ,_egee );_dea !=nil {return nil ,nil ,_dea ;};};if _gfgf :=_a .Write (_afcb ,_a .LittleEndian ,_beag );_gfgf !=nil {return nil ,nil ,_gfgf ;};_egee ++;if _ ,_gafge :=_ec .Copy (_dafd ,_eea );_gafge !=nil {return nil ,nil ,_gafge ;};if _ffdb :=_dafd .AlignLength (64);_ffdb !=nil {return nil ,nil ,_ffdb ;};};if _ccca :=_afcb .FillWithByte (int (_eafd ._becg )-_afcb .Len (),_cedg );_ccca !=nil {return nil ,nil ,_ccca ;};if _ggf :=_dafd .AlignLength (int (_eafd ._becg ));_ggf !=nil {return nil ,nil ,_ggf ;};return _afcb ,_dafd ,nil ;};func (_ega *Reader )saveToFatLocs (_ceb uint32 ,_afa interface{},_afee bool )error {_bbg :=_f .NewBuffer ([]byte {});if _dde :=_a .Write (_bbg ,_a .LittleEndian ,_afa );_dde !=nil {return _dde ;};_efef :=_ega .findFatLocsOffset (_afee )+int64 (_ceb *4);_ ,_addf :=_ega ._ecd .WriteAt (_bbg .Bytes (),_efef );return _addf ;};const (_cbea uint64 =0xE11AB1A1E011CFD0;_gba uint32 =64;_bba int64 =4096;_dbeb uint32 =128;);func _ag (_dbc []byte )*directoryEntryFields {_dg :=&directoryEntryFields {};for _gge :=range _dg ._bda {_dg ._bda [_gge ]=_a .LittleEndian .Uint16 (_dbc [_gge *2:_gge *2+2]);};_dg ._g =_a .LittleEndian .Uint16 (_dbc [64:66]);_dg ._afg =uint8 (_dbc [66]);_dg ._ed =uint8 (_dbc [67]);_dg ._ae =_a .LittleEndian .Uint32 (_dbc [68:72]);_dg ._bf =_a .LittleEndian .Uint32 (_dbc [72:76]);_dg ._gg =_a .LittleEndian .Uint32 (_dbc [76:80]);_dg ._be =_af .MustGuid (_dbc [80:96]);copy (_dg ._ge [:],_dbc [96:100]);_dg ._ga =_af .MustFileTime (_dbc [100:108]);_dg ._eg =_af .MustFileTime (_dbc [108:116]);_dg ._gb =_a .LittleEndian .Uint32 (_dbc [116:120]);copy (_dg ._ea [:],_dbc [120:128]);return _dg ;};func (_bac fileInfo )Name ()string {return _bac .File .Name };func (_bgefe Error )Error ()string {return "\u006ds\u0063\u0066\u0062\u003a\u0020"+_bgefe ._facc +"\u003b\u0020"+_e .FormatInt (_bgefe ._cbeac ,10);};func _cgc (_dag *File ){if _dag ._g < 4||_dag ._g > 64{return ;};_ee :=int (_dag ._g /2-1);_dag .Initial =_dag ._bda [0];var _bfb int ;if !_cb .IsPrint (rune (_dag .Initial )){_bfb =1;};_dag .Name =string (_cg .Decode (_dag ._bda [_bfb :_ee ]));};func New (ra _ec .ReaderAt )(*Reader ,error ){_gaeba :=&Reader {_fdaf :ra };if _ ,_ccbc :=ra .(slicer );_ccbc {_gaeba ._ddf =true ;}else {_gaeba ._fge =make ([]byte ,_gcd );};if _cce :=_gaeba .setHeader ();_cce !=nil {return nil ,_cce ;};if !_gaeba ._ddf &&int (_gaeba ._becg )> len (_gaeba ._fge ){_gaeba ._fge =make ([]byte ,_gaeba ._becg );};if _aggf :=_gaeba .setDifats ();_aggf !=nil {return nil ,_aggf ;};if _ece :=_gaeba .setDirEntries ();_ece !=nil {return nil ,_ece ;};if _adgg :=_gaeba .setMiniStream ();_adgg !=nil {return nil ,_adgg ;};if _ddg :=_gaeba .traverse ();_ddg !=nil {return nil ,_ddg ;};return _gaeba ,nil ;};func (_aee *Reader )ID ()string {return _aee .File [0].ID ()};func _dfg (_baac ,_dfc uint32 )int64 {return int64 ((_dfc +1)*_baac )};func (_bcee *Reader )setHeader ()error {_bacd ,_ccbg :=_bcee .readAt (0,_gcd );if _ccbg !=nil {return _ccbg ;};_bcee ._gfg =&header {headerFields :_ecca (_bacd )};if _bcee ._gfg ._ebb !=_cbea {return Error {ErrFormat ,"\u0062\u0061\u0064\u0020\u0073\u0069\u0067\u006e\u0061\u0074\u0075\u0072\u0065",int64 (_bcee ._gfg ._ebb )};};if _bcee ._gfg ._cfa ==0x0009||_bcee ._gfg ._cfa ==0x000c{_bcee ._becg =uint32 (1<<_bcee ._gfg ._cfa );}else {return Error {ErrFormat ,"\u0069\u006c\u006c\u0065ga\u006c\u0020\u0073\u0065\u0063\u0074\u006f\u0072\u0020\u0073\u0069\u007a\u0065",int64 (_bcee ._gfg ._cfa )};};if _bcee ._gfg ._eed > 0{_dcd :=(_bcee ._becg /4)-1;if int (_bcee ._gfg ._eed *_dcd +109)< 0{return Error {ErrFormat ,"\u0044I\u0046A\u0054\u0020\u0069\u006e\u0074 \u006f\u0076e\u0072\u0066\u006c\u006f\u0077",int64 (_bcee ._gfg ._eed )};};if _bcee ._gfg ._eed *_dcd +109> _bcee ._gfg ._ffb +_dcd {return Error {ErrFormat ,"\u006e\u0075\u006d\u0020\u0044\u0049\u0046\u0041\u0054\u0073 \u0065\u0078\u0063\u0065\u0065\u0064\u0073 \u0046\u0041\u0054\u0020\u0073\u0065\u0063\u0074\u006f\u0072\u0073",int64 (_bcee ._gfg ._eed )};};};if _bcee ._gfg ._ccdg > 0{if int (_bcee ._becg /4*_bcee ._gfg ._ccdg )< 0{return Error {ErrFormat ,"m\u0069\u006e\u0069\u0020FA\u0054 \u0069\u006e\u0074\u0020\u006fv\u0065\u0072\u0066\u006c\u006f\u0077",int64 (_bcee ._gfg ._ccdg )};};if _bcee ._gfg ._ccdg > _bcee ._gfg ._ffb *(_bcee ._becg /_gba ){return Error {ErrFormat ,"\u006e\u0075\u006d\u0020\u006d\u0069n\u0069\u0020\u0046\u0041\u0054\u0073\u0020\u0065\u0078\u0063\u0065\u0065\u0064s\u0020\u0046\u0041\u0054\u0020\u0073\u0065c\u0074\u006f\u0072\u0073",int64 (_bcee ._gfg ._ffb )};};};return nil ;};func (_cgf fileInfo )Sys ()interface{}{return nil };func (_da *Reader )setDirEntries ()error {_dd :=20;if _da ._gfg ._bbaa > 0{_dd =int (_da ._gfg ._bbaa );};_gaf :=make ([]*File ,0,_dd );_bc :=make (map[uint32 ]bool );_gd :=int (_da ._becg /_dbeb );_bfe :=_da ._gfg ._efdd ;for _bfe !=_beag {_dc ,_ad :=_da .readAt (_dfg (_da ._becg ,_bfe ),int (_da ._becg ));if _ad !=nil {return Error {ErrRead ,"\u0064\u0069\u0072\u0065\u0063\u0074\u006f\u0072\u0079\u0020e\u006e\u0074\u0072\u0069\u0065\u0073\u0020r\u0065\u0061\u0064\u0020\u0065\u0072\u0072\u006f\u0072\u0020\u0028"+_ad .Error ()+"\u0029",_dfg (_da ._becg ,_bfe )};};for _cd :=0;_cd < _gd ;_cd ++{_adg :=&File {_aeb :_da };_adg .directoryEntryFields =_ag (_dc [_cd *int (_dbeb ):]);_ce (_da ._gfg ._adfa ,_adg );_adg ._de =_adg ._gb ;_gaf =append (_gaf ,_adg );};_geb ,_ad :=_da .findNext (_bfe ,false );if _ad !=nil {return Error {ErrRead ,"d\u0069\u0072\u0065\u0063\u0074\u006f\u0072\u0079\u0020\u0065\u006e\u0074\u0072\u0069\u0065\u0073\u0020\u0065r\u0072\u006f\u0072\u0020\u0066\u0069\u006e\u0064\u0069\u006eg \u0073\u0065\u0063t\u006fr\u0020\u0028"+_ad .Error ()+"\u0029",int64 (_geb )};};if _geb <=_bfe {if _geb ==_bfe ||_bc [_geb ]{return Error {ErrRead ,"\u0064\u0069\u0072\u0065\u0063\u0074\u006f\u0072\u0079\u0020e\u006e\u0074\u0072\u0069\u0065\u0073\u0020s\u0065\u0063\u0074\u006f\u0072\u0020\u0063\u0079\u0063\u006c\u0065",int64 (_geb )};};_bc [_geb ]=true ;};_bfe =_geb ;};_da ._bedd =_gaf ;return nil ;};func (_fcb *File )ensureWriterAt ()error {if _fcb ._aeb ._ecd ==nil {_bcf ,_fe :=_fcb ._aeb ._fdaf .(_ec .WriterAt );if !_fe {return Error {ErrWrite ,"\u006d\u0073\u0063\u0066\u0062\u002e\u004ee\u0077\u0020\u006d\u0075\u0073\u0074\u0020\u0062\u0065\u0020\u0067\u0069\u0076\u0065n\u0020R\u0065\u0061\u0064\u0065\u0072\u0041t\u0020\u0063\u006f\u006e\u0076\u0065\u0072t\u0069\u0062\u006c\u0065\u0020\u0074\u006f\u0020\u0061\u0020\u0069\u006f\u002e\u0057\u0072\u0069\u0074\u0065\u0072\u0041\u0074\u0020\u0069n\u0020\u006f\u0072\u0064\u0065\u0072\u0020\u0074\u006f\u0020\u0077\u0072\u0069t\u0065",0};};_fcb ._aeb ._ecd =_bcf ;};return nil ;};func (_agd *File )mode ()_cf .FileMode {if _agd ._afg !=_bd {return _cf .ModeDir |0777;};return 0666;};func (_abb *File )findLast (_fcbe bool )(uint32 ,error ){_beb :=_abb ._gb ;for {_cdbg ,_dae :=_abb ._aeb .findNext (_beb ,_fcbe );if _dae !=nil {return 0,Error {ErrRead ,"\u0062\u0061\u0064\u0020\u0072\u0065\u0061\u0064\u0020\u0066i\u006e\u0064\u0069\u006e\u0067\u0020\u006ee\u0078\u0074\u0020\u0073\u0065\u0063\u0074\u006f\u0072\u0020\u0028"+_dae .Error ()+"\u0029",0};};if _cdbg ==_beag {break ;};_beb =_cdbg ;};return _beb ,nil ;};func (_ddd fileInfo )Mode ()_cf .FileMode {return _ddd .File .mode ()};func (_bcfcb *Reader )Modified ()_d .Time {return _bcfcb .File [0].Modified ()}; |