4  +  *   ! "# +$% +&'( )*+ , - . / 0123 4 567 8 9:; 5< = > ?@ *A *B "CDE FGIJK 0)LM +NO 58 5P 5Q *R *ST ;8 U V W XY ;Z [\ ] ^ _` a bc 0d 5e fg +hi 5j k lFm _n op q rs tu _v _w xyz {|}~  _     _B@?(\) ?zG{ r      W 0  _  5 _    0,   p Q  r8 " " " , "    oZ  +     Q o T  o o              +  _ ;   Q    ,       ; r r  r t * 5, * * *   * * 5 t t *   * *     8   _ _!" *#$ %&'VersioningType InnerClassespatternLjava/util/regex/Pattern;regexLjava/lang/String; gzpatternparentLorg/das2/fsm/FileStorageModel;root%Lorg/das2/util/filesystem/FileSystem; timeParserLorg/das2/datum/TimeParser;templateloggerLjava/util/logging/Logger; fileNameMapLjava/util/HashMap;allowGzZ oldVersionsLjava/util/List; Signature$Ljava/util/List;versioningType.Lorg/das2/fsm/FileStorageModel$VersioningType; versionGe versionLt getFileSystem'()Lorg/das2/util/filesystem/FileSystem;CodeLineNumberTableLocalVariableTablethisgetChildFileSystem(Lorg/das2/util/filesystem/FileSystem;Ljava/lang/String;Lorg/das2/util/monitor/ProgressMonitor;)Lorg/das2/util/filesystem/FileSystem; localRootLjava/io/File;resultexLjava/net/URISyntaxException;childmonitor'Lorg/das2/util/monitor/ProgressMonitor; StackMapTable'E ExceptionsgetRepresentativeFile;(Lorg/das2/util/monitor/ProgressMonitor;)Ljava/lang/String;M(Lorg/das2/util/monitor/ProgressMonitor;Ljava/lang/String;)Ljava/lang/String; childRegexh(Lorg/das2/util/monitor/ProgressMonitor;Ljava/lang/String;Lorg/das2/datum/DatumRange;)Ljava/lang/String;rangeLorg/das2/datum/DatumRange;(Lorg/das2/fsm/FileStorageModel;Lorg/das2/util/monitor/ProgressMonitor;Ljava/lang/String;Lorg/das2/datum/DatumRange;I)Ljava/lang/String;eLjava/io/IOException;iIone listRegex fileSystems&[Lorg/das2/util/filesystem/FileSystem;names[Ljava/lang/String;kidsextratr versionOk$Ljava/lang/IllegalArgumentException;fffiles1jlastLjava/lang/Exception;range1thsdepth parentRegexLocalVariableTypeTable9Ljava/util/HashMap;(DUT(m) setContext(Lorg/das2/datum/DatumRange;)VtrdrgetDatumRangeFor>(Ljava/lang/String;Ljava/util/Map;)Lorg/das2/datum/DatumRange;e2filenameLjava/util/Map;5Ljava/util/Map;d(Ljava/lang/String;Ljava/util/Map;)Lorg/das2/datum/DatumRange;](Lorg/das2/fsm/FileStorageModel;Ljava/lang/String;Ljava/util/Map;)Lorg/das2/datum/DatumRange;(Lorg/das2/fsm/FileStorageModel;Ljava/lang/String;Ljava/util/Map;)Lorg/das2/datum/DatumRange;getFilenameFor@(Lorg/das2/datum/Datum;Lorg/das2/datum/Datum;)Ljava/lang/String;startLorg/das2/datum/Datum;endgenerateNamesFor0(Lorg/das2/datum/DatumRange;)[Ljava/lang/String;sstartdrddLjava/text/ParseException;scurroldCurrtpcurr countLimit approxCount*}+quantize8(Lorg/das2/datum/DatumRange;)Lorg/das2/datum/DatumRange;dr1dr2tp1tp2tf1tf2 timeRange getNamesFor targetRangeW(Lorg/das2/datum/DatumRange;Lorg/das2/util/monitor/ProgressMonitor;)[Ljava/lang/String;getBestNamesForX(Lorg/das2/datum/DatumRange;ZLorg/das2/util/monitor/ProgressMonitor;)[Ljava/lang/String;slfsfiles2 deleteRemote remoteFileswfs(Lorg/das2/util/filesystem/WebFileSystem;f theListRegexrmkeythssbestcompLjava/util/Comparator; bestVersions bestFiles versioninglist versionList rangeList*Ljava/util/Comparator;-Ljava/util/List;,-getCacheTagForh(Lorg/das2/fsm/FileStorageModel;Lorg/das2/datum/DatumRange;[Ljava/lang/String;)Lorg/das2/datum/CacheTag;rnamefsmminmax.d(Lorg/das2/fsm/FileStorageModel;Lorg/das2/datum/DatumRange;[Ljava/io/File;)Lorg/das2/datum/CacheTag;files[Ljava/io/File; getFilesFor,(Lorg/das2/datum/DatumRange;)[Ljava/io/File;getBestFilesFor cacheCleanup()V/ getRangeFor/(Ljava/lang/String;)Lorg/das2/datum/DatumRange;hasField(Ljava/lang/String;)ZfieldgetField8(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;hh containsFile(Ljava/io/File;)Zfile containsNamemLjava/util/regex/Matcher; getNameFor"(Ljava/io/File;)Ljava/lang/String;getRoot()Ljava/lang/String;maybeGetGzFileI(Ljava/lang/String;Lorg/das2/util/monitor/ProgressMonitor;)Ljava/io/File;fzsfzmonf0oz%Lorg/das2/util/filesystem/FileObject;0 getFileFor"(Ljava/lang/String;)Ljava/io/File;K([Ljava/lang/String;Lorg/das2/util/monitor/ProgressMonitor;)[Ljava/io/File;onumwarnLjava/util/ArrayList;%Ljava/util/ArrayList;S(Lorg/das2/datum/DatumRange;Lorg/das2/util/monitor/ProgressMonitor;)[Ljava/io/File; countGroups(Ljava/lang/String;)IpgetParentRegex&(Ljava/lang/String;)Ljava/lang/String;dirRegexLjava/lang/StringBuilder;O getParent!()Lorg/das2/fsm/FileStorageModel; makeCanonical hideParams withinArg splitIndexsurl1createX(Lorg/das2/util/filesystem/FileSystem;Ljava/lang/String;)Lorg/das2/fsm/FileStorageModel;parentTemplate parentFSM templatebri22 FieldHandler(Lorg/das2/util/filesystem/FileSystem;Ljava/lang/String;Ljava/lang/String;Lorg/das2/datum/TimeParser$FieldHandler;)Lorg/das2/fsm/FileStorageModel; fieldName fieldHandler(Lorg/das2/datum/TimeParser$FieldHandler;(Lorg/das2/fsm/FileStorageModel;Lorg/das2/util/filesystem/FileSystem;Ljava/lang/String;Ljava/lang/String;Lorg/das2/datum/TimeParser$FieldHandler;[Ljava/lang/Object;)V moreHandler[Ljava/lang/Object;vh2Y(Lorg/das2/fsm/FileStorageModel;Lorg/das2/util/filesystem/FileSystem;Ljava/lang/String;)VtoString SourceFileFileStorageModel.java  345 6 78(org/das2/util/filesystem/LocalFileSystem 9: java/io/File  ; <4( => ?&org/das2/util/filesystem/SubFileSystem @Ajava/net/URISyntaxException"java/lang/IllegalArgumentException  B&org/das2/util/filesystem/ZipFileSystem not supported, should not happen  C DE FM $%F GH*get representative from {0} {1} range: {2}java/lang/Object 23I JK)org/das2/util/monitor/NullProgressMonitor  L MNAFileSystem use on the GUI event thread will often cause problems. OC   get representative file PQ RS Tjava/lang/String#org/das2/util/filesystem/FileSystem 89>org/das2/util/filesystem/FileSystem$FileSystemOfflineExceptionFileSystemOfflineExceptionjava/net/UnknownHostExceptionjava/io/FileNotFoundExceptionjava/lang/RuntimeException/ UVjava/lang/StringBuilder WX  Y RZjava/util/HashMap u| 0 ./ v [\- ]^ 1 !"* _` ab cblist directory dH Je ().gz Uf0fall back to old code that would list everything gC  h`java/lang/Exception rs, i j kl1 mN no p`  file name "%" doesn't match model specification ( #)java/text/ParseExceptionjava/lang/NumberFormatException), parse error in field  q r st uv ws. xy nz {|Ptoo many intervals would be created, this is limited to about 1000000 intervals.java/util/ArrayList  } ~` s+ 8 Q  H1Strange bug shown in test033: {2} >>{0}<< >>{1}<< tp1 start {0}    J tp1 end {0}  tp1 tr {0} tp2 start {0} tp2 end {0} tp2 tr {0} 7  vthis shouldn't happen getNamesFor {0} *+parent {0} yields: {1}    Njava/io/InterruptedIOExceptioncancel pressed (.gz)?listDirectory({0})->{1}  uv /expected version add {0}- skip {0} because it does not parse properly&org/das2/util/filesystem/WebFileSystem   ,local files that do not exist on remote: {0}  [org/das2/datum/DatumRangecheck format exception: {0}   a8 org/das2/fsm/FileStorageModel$1   getNamesFor {0} -> {1}  org/das2/datum/CacheTag      local filesystems do not cache / N ~ 0 N#removeLocalFile returned false: {0}  8field is not in template: &' +File didn't come from this FileStorageModel N     failed to set last modified   Mlisting returns result that cannot be resolved file file (e.g. bad link): {0}java/io/IOException  get names  Q $Y a$y\$% //+  ;each folder of template must have fields marked by $ or %:  C  _ W([\$][yYmdjxv\(\{]) N Q    $\%  org/das2/fsm/FileStorageModel       #template cannot start with space: ""//\/\/\+\\+org/das2/fsm/FileStorageModel$2  \.gz das2.system.fsm ,org/das2/fsm/FileStorageModel$VersioningType%org/das2/util/monitor/ProgressMonitorjava/lang/Throwableorg/das2/datum/TimeParserjava/util/List java/util/Mapjava/util/Comparatororg/das2/datum/Datumjava/util/Iterator#org/das2/util/filesystem/FileObjectjava/util/regex/Matcher&org/das2/datum/TimeParser$FieldHandler getRootURI()Ljava/net/URI; java/net/URI getSchemeequals(Ljava/lang/Object;)Z getLocalRoot()Ljava/io/File;#(Ljava/io/File;Ljava/lang/String;)VtoURIgetSubtaskMonitor;(Ljava/lang/String;)Lorg/das2/util/monitor/ProgressMonitor;\(Ljava/net/URI;Lorg/das2/util/monitor/ProgressMonitor;)Lorg/das2/util/filesystem/FileSystem;createFileSystem9(Ljava/lang/String;)Lorg/das2/util/filesystem/FileSystem;(Ljava/lang/Throwable;)V(Ljava/lang/String;)Vresolve"(Ljava/lang/String;)Ljava/net/URI;java/util/logging/LevelFINELjava/util/logging/Level;java/util/logging/LoggerlogA(Ljava/util/logging/Level;Ljava/lang/String;[Ljava/lang/Object;)Vjava/awt/EventQueueisDispatchThread()Zinfolength()I substring(I)Ljava/lang/String;finished listDirectory`(Ljava/lang/String;Ljava/lang/String;Lorg/das2/util/monitor/ProgressMonitor;)[Ljava/lang/String;append-(Ljava/lang/String;)Ljava/lang/StringBuilder;endsWith(II)Ljava/lang/String;get&(Ljava/lang/Object;)Ljava/lang/Object;compare'(Ljava/lang/Object;Ljava/lang/Object;)I getValidRange()Lorg/das2/datum/DatumRange;contains(Lorg/das2/datum/DatumRange;)Z intersectsFINERC(Ljava/util/logging/Level;Ljava/lang/String;Ljava/lang/Throwable;)V9(Ljava/lang/String;Ljava/lang/String;)[Ljava/lang/String;finepreviousclearjava/util/regex/Patternmatcher3(Ljava/lang/CharSequence;)Ljava/util/regex/Matcher;matchesparse>(Ljava/lang/String;Ljava/util/Map;)Lorg/das2/datum/TimeParser; getTimeRange*(Ljava/lang/String;Ljava/lang/Throwable;)Vformat()Lorg/das2/datum/Datum;org/das2/datum/DatumRangeUtilsloppyIntersectionS(Lorg/das2/datum/DatumRange;Lorg/das2/datum/DatumRange;)Lorg/das2/datum/DatumRange;widthvalue()D/(Ljava/lang/String;)Lorg/das2/datum/TimeParser;divide.(Lorg/das2/datum/Datum;)Lorg/das2/datum/Datum;(I)VnextaddsizetoArray(([Ljava/lang/Object;)[Ljava/lang/Object;WARNINGorg/das2/datum/Unitsus2000"Lorg/das2/datum/TimeLocationUnits;getTime(Lorg/das2/datum/Units;)Djava/lang/DoublevalueOf(D)Ljava/lang/Double;@(Ljava/util/logging/Level;Ljava/lang/String;Ljava/lang/Object;)V getEndTime(Lorg/das2/datum/Datum;)ZunionN(Lorg/das2/datum/DatumRange;Lorg/das2/datum/Datum;)Lorg/das2/datum/DatumRange;java/lang/Integer(I)Ljava/lang/Integer; setTaskSize(J)Vstarted isCancelledsetTaskProgressjava/util/Arrayssort([Ljava/lang/Object;)Vnone5(Ljava/net/URI;)Lorg/das2/util/filesystem/FileSystem;asList%([Ljava/lang/Object;)Ljava/util/List;indexOf(Ljava/lang/Object;)IaddAll(Ljava/util/Collection;)Z(I)Ljava/lang/Object;put8(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object; getMessagevalues()Ljava/util/Collection;java/util/Collection"(Lorg/das2/fsm/FileStorageModel;)Vjava/util/Collections)(Ljava/util/List;Ljava/util/Comparator;)VgtltE(Lorg/das2/datum/Datum;Lorg/das2/datum/Datum;Lorg/das2/datum/Datum;)Viterator()Ljava/util/Iterator;hasNext()Ljava/lang/Object; getFileObject9(Ljava/lang/String;)Lorg/das2/util/filesystem/FileObject;removeLocalFile containsKeyexistsgetFile7(Lorg/das2/util/monitor/ProgressMonitor;)Ljava/io/File;getPath'org/das2/util/filesystem/FileSystemUtilgunzip(Ljava/io/File;Ljava/io/File;)V lastModified()JsetLastModified(J)Z$org/das2/util/monitor/SubTaskMonitorQ(Lorg/das2/util/monitor/ProgressMonitor;JJ)Lorg/das2/util/monitor/SubTaskMonitor;compile-(Ljava/lang/String;)Ljava/util/regex/Pattern; groupCountsplit'(Ljava/lang/String;)[Ljava/lang/String;(Ljava/lang/CharSequence;)Z replaceAlljava/lang/SystemerrLjava/io/PrintStream;java/io/PrintStreamprintln startsWithcharAt(I)C(C)Ljava/lang/StringBuilder;find lastIndexOf(II)I(Ljava/lang/String;I)I|(Ljava/lang/String;Ljava/lang/String;Lorg/das2/datum/TimeParser$FieldHandler;[Ljava/lang/Object;)Lorg/das2/datum/TimeParser;getRegex&(Ljava/lang/Object;)Ljava/lang/String;org/das2/util/LoggerManager getLogger.(Ljava/lang/String;)Ljava/util/logging/Logger;! !"#$%&'()*+,-./01/234/*56 7 894*q*(*:Y+ ,  NY**+NI:Y**+N-:YY*+,  N-BHK^dg5F8BHKMW^dgis}6f :;8< H< M =>d< i => ?@A< B;OC OC DE-./FG4= *+56 7 @AEFH4G *+,56  7 @A IEFJ4Q *+,-56* 7 @A I KLE FM4Y*SY,SY-S+ YL: !": *#*$%:*#+& *$'`(-`:  : +) *Y S:+:6  1 * 2+ ,S: 0Y 1 *$'`(:!+Y*S:*Y2S:*$: d6  L G 23+ 4:  d6    22   2"5Y6 2737  278:39'd::;Y<:*=:6*> *?@AB*>C6*D *?@AB*DC6L*EFG=- -H0,( 2  2,+I 4:: : :JK  *L d6    235Y67M78N:  h d6  22   2"5Y6 2737  278:39'd::'d:: h *#: +) OP*#2Q:  R: -- H: +) *#+S *$'`( `:  : +) *Y S:+:6  1 * 2+ ,S: 0Y 1 ͧ)+):+) -./8;T>z LU5v]*-3;>ENrzi    ,"3#=$s%'()*+, -.'/-0124388;6=7I9Q:TZ=a>f?w@ABCDE?K LMiM O(P5Q<RISLiRSUU\WgXuUz[i[\]^`cab^eijijl6j$ NO 6PQ rmR SLTUTVW' XWY'ZL[)= =\s],(^W 3!_Q  NPQ ^`Q (]k^W mPQ  Na 6PQ z]R 5bL STUVWc@AIKLdQSTUVW-e>< f YgB)* hijkjGjj hijklzjjjcm  hijkjj hijkjlzjj &z^jj9nk# %Bo Kz^jj4 hijkjlzjkj5jcp  hijkjlzjj hijkjjq hijkjlzjjErs4A *E+U5 uv6 7 tL"uv4,V*W+XY*E+,ZW*E[*\-*\+XY*E++'d:,ZW*E[Y5Y6]7+7^7*_7`78NY5Y6]7+7^7*_7c78-d:%a%b&Va&VbWaWb5. &;OW64w\1Na7xYyf YzB&0kp,{ u|4,V*W+XY*E+,ZW*E[*\-*\+XY*E++'d:,ZW*E[Y5Y6]7+7^7*_7`78NY5Y6]7+7^7*_7c78-d:%a%b&Va&VbWaWb5. &;OW64w\1NacxYyf YzB&0kp,}~4H *E+,e56  7  4 *EN-+feM0:-F:+g:hi*-feM-,jW:0Y1-[:k6l+hhnik6ok YqrYs:+H t:+H8-fue:vW: t: wx*yzT?EHa5z"/4?EHJTZ^t6%L"L+=aJ ="L 7KL?"ZL^QtQc<+f c<-BJ hkp!pkk hkjH 7k:!4Q *E+f+feM*E+u+ueN*E,j[:*E-j[::{|Y,SY-SY*ES*E,j:{}~{~{[*E-j:{~{~{[f+ufM0Y :=a a5V -:=?]g} !6z -L:Lg"?"?=\ "L"L =7LB2=hkjjokkhk4B*+Y5-67LE4F*+,596 7L@AE4F*+,5E6 7L@AE4B*+Y5P67LE4 *- YN**#*#+Y:Y*#SYS+:6**2-,S:0Y1*$%:*$'`(:!+Y*S:*Y2S:*$:rY:rY:rY: - h-;Y<: 6   - Y-  h: *L5Y6 778:  23 N: JY SY S 6   22  2"5Y6 2737 278:39'd::* :+ +HuM9*L'd::vW vW*?* A 0Y AvWJ:J-  h h l` 2 2::x :3 N:rY: ::66'2: vWز*W *?*?@: ;Y<: ;Y<: 6xG*: :*: *:zJ C*> *>C2*D *DC W W:{K*> *>C^*D *DCG C9 W *:**vW:{K  *:Y*Y*SYxS-)x*yzzrThk  T!T5g^`g$i+j=k_lgmrorpqmtuvwxy|}~ (48?Uc *4J[hkmz  ,2@IR[jx  !GU]iy6* Naj/PQeSgNTU=xVWLm N\]_Qk `WW+P+z;8 c^W  %PQ =ay=ax0]^P_QI Rwy [ny 7L)@ADSUTUJVW;+2+)+   Yy f\ W-P-I Rwz [nz ;-2-)   Yz B(Nhkilz\p jlz9 hkijlz,j2z^jjk3 BoQhkijlzjzDzz$ hkijlz+hkijlz{hkijlzjjjjBpCBphkijlzE 48 k+fN+u:,:66E2:*Q: -+f  f-N+u  u:Y-5" $,AY_6H,-L $5kkKLkVWf `BEhkzz(jk@Ahkz 4),*N6,-*,2S*+-5   " 64 PQ))KL)#VWB  z4A *+Y56 7 LE4A *+Y56 7 LE4P*¶P=*L+*+*M*,ƶǚJ,ӱ5! "$2%@&L(O*62P7B  ,4A *+;Y<536 7 4= *E+ɬ5<6 7 4;;YHQ[hp (-58>6z ;h~ NOAPQ(; L7LVWL@A:'%Q @<=PQf  @<BW 2(hzim  hziE4k*+N*-,:5647L@A VW]E4, YM*+, N-:**;Y<-,- h,6-, Y*-2:Й", h` hٶS-*L&*-2, h` hٷ:S*2-2W:0Y1e,)h5Z   "4EKU^hu}" !$%6\ ;ub NONPQ7L@AVW"B7 'z3)hkizm E 4g<*M,2XN-5)*+,6*<Q  4G*3L+.5Y+2M>+d,37+27WM,,85"46 78"9/88<:>64PQ G@W: BzCj4/*#5I6 7 4n* **L*L+3L+3=++!5Y67+:78+3 +(L+5* XY[ ])^0_?`]bfcle6*<n# N<0>PQB j< 4`5Y6L=>*'J**)= +7W&+*W*(=+*W+85* qr stu$v?xKyUs[}6* OPQ`#X< V)B   4&L+*XM,,>*/>`5  $6* PQ&# B $j 4k+L+M,3>+++L,M,6+::*:Y*+Y*+52  #,5>DLT`6HLT k k# aZPQ>-QB 5j* 4: +L+:36+ ++L:6(+::*,-:Y*+,-Y*+,-52  &/:EKT^p6\ T^ #    vmPQE<QB :j5  4m K***L*rY*>*D*,*+#-%Y5Y67-778-3 -(N- - 3N*-  _A:*? Y*:*-EJ  *-YSYSE"*-YSYSYSE**E$**$W-M9*L*L!*5Y6*$778\5zD EG}~#(-7YbhrHIKLNV WX Y%[,\J^6\ K7KK K#K K  K B. YhhDjj:j #$ 4Z*+,-5 n o6*7 #4F5Y6*7*_785s6 74" 5B*@ _ -+H