; @c @sdddfdddfdddfdd d fd d d fdddfdddfdddfdddfd ddfdddff Zhddf<ddf<dd f<d!d"hdd#<d$d%d?f<d@dAf<dBdChddD<ddE<dFdGf<d?d@hddA<ddB<dVdC<dDdE<dFdGGHqneiZeixPeD]HZ e dod?fjoq[nd@e eee i!dee i"fGHq[Wei#doo dAGHnHqWnd9S(BisXsDummyisBsBytesAsASCIIisSsShortisLsLongisRsRatiosSBs Signed BytesUs UndefinedsSSs Signed ShortsSLs Signed LongsSRs Signed Ratiois ImageWidthis ImageLengthis BitsPerSampleis CompressionsUncompressed TIFFisJPEG CompressedisPhotometricInterpretationi s FillOrderi s DocumentNameisImageDescriptionisMakeisModelis StripOffsetsis OrientationisSamplesPerPixelis RowsPerStripisStripByteCountsis XResolutionis YResolutionisPlanarConfigurationi(sResolutionUnits Not Absolutes Pixels/InchisPixels/Centimeteri-sTransferFunctioni1sSoftwarei2sDateTimei;sArtisti>s WhitePointi?sPrimaryChromaticitiesiVs TransferRangeisJPEGProcisJPEGInterchangeFormatisJPEGInterchangeFormatLengthisYCbCrCoefficientsisYCbCrSubSamplingisYCbCrPositioningisReferenceBlackWhiteisCFARepeatPatternDimis CFAPatternis BatteryLevelis Copyrightis ExposureTimeisFNumberisIPTC/NAAiis ExifOffsetissInterColorProfilei"sExposurePrograms UnidentifiedsManualsProgram NormalsAperture PrioritysShutter PriorityisProgram CreativesProgram Actionis Portrait ModesLandscape Modei$sSpectralSensitivityi%sGPSInfoi'sISOSpeedRatingsi(sOECFis ExifVersionisDateTimeOriginalisDateTimeDigitizedisComponentsConfigurationssYsCbsCrsRedsGreensBlueisCompressedBitsPerPixelisShutterSpeedValueis ApertureValueisBrightnessValueisExposureBiasValueisMaxApertureValueisSubjectDistanceis MeteringModesAveragesCenterWeightedAveragesSpots MultiSpotis LightSourcesUnknownsDaylights FluorescentsTungsteni sFlashisStandard Light AisStandard Light BisStandard Light CisD55isD65isD75isOtheri sNosFireds Fired (?)s Fired (!)i s Fill Firedi sFill Fired (?)isFill Fired (!)isOffisAuto Offis Auto FiredisAuto Fired (?)isAuto Fired (!)i s Not Availablei s FocalLengthi|s MakerNoteis UserCommentis SubSecTimeisSubSecTimeOriginalisSubSecTimeDigitizedisFlashPixVersionis ColorSpaceisExifImageWidthisExifImageLengthisInteroperabilityOffseti s FlashEnergyi sSpatialFrequencyResponseisFocalPlaneXResolutionisFocalPlaneYResolutionisFocalPlaneResolutionUnitisSubjectLocationis ExposureIndexis SensingMethodis FileSourcesDigital Camerais SceneTypesDirectly PhotographedsInteroperabilityIndexsInteroperabilityVersionisRelatedImageFileFormatisRelatedImageWidthisRelatedImageLengths GPSVersionIDsGPSLatitudeRefs GPSLatitudesGPSLongitudeRefs GPSLongitudesGPSAltitudeRefs GPSAltitudes GPSTimeStamps GPSSatellitess GPSStatussGPSMeasureModei sGPSDOPi s GPSSpeedRefsGPSSpeedis GPSTrackRefsGPSTracksGPSImgDirectionRefsGPSImgDirections GPSMapDatumsGPSDestLatitudeRefsGPSDestLatitudesGPSDestLongitudeRefsGPSDestLongitudeisGPSDestBearingRefsGPSDestBearingsGPSDestDistanceRefisGPSDestDistances ISOSettings ColorModesQualitys WhitebalancesImageSharpenings FocusModes FlashSettings ISOSelectionisImageAdjustmentis AuxiliaryLensisManualFocusDistanceisDigitalZoomFactorisAFFocusPositionsCentersTopsBottomisLeftisRightis SaturationisB&Wis-2is-1s0s1s2isNoiseReductionsDataDumps VGA Basics VGA NormalsVGA Fines SXGA Basics SXGA Normals SXGA FinesColors MonochromesNormalsBright+sBright-s Contrast+s Contrast-sCCDSpeedsISO 80sISO 160sISO 320sISO 100s WhiteBalancesAutosPresets IncandescentsCloudys Speed LightcCshdd<dd<dd<dd<}hdd <dd <dd <dd <d d<}d||d|d||dfSdS(NisNormalisUnknownisFastisPanoramas Non-panoramics Left to rights Right to lefts Bottom to topis Top to bottoms%s - sequence %d - %s(sasbsv(svsasb((s:/mnt/gmirror/ports/www/zope-cmfphoto/work/CMFPhoto/EXIF.pysolympus_special_modeEs*3s JPEGThumbnails SpecialModesJPEGQualsSQsHQsSHQsMacrois DigitalZoomisSoftwareReleaseis PictureInfoi sCameraIDcCsditt|S(Ns(sjoinsmapschrsx(sx((s:/mnt/gmirror/ports/www/zope-cmfphoto/work/CMFPhoto/EXIF.pyscsis RecordingModesSingle ShuttersPanoramas Night ScenesPortraits LandscapesEconomysFines FocusingModes Auto Focuss Manual FocussInfinitys FlashModesOnsRed Eye ReductionsFlashIntensitysWeaksStrongsObject DistancesShadeis SharpnesssSoftsHardsContrastsLowsHighi@iPidi}s+1.0is+3.0is+2.0s NoteVersionsDaylightColor-FluorescentisDaywhiteColor-FluorescentisWhite-FluorescentsCustomiisToneiis FlashStrengthi i!i0sSlowSynci1s PictureModesSportssNights Program AEsAperture Priority AEsShutter Priority AEsManual ExposureisMotorOrBracketis BlurWarningis FocusWarningis AEWarnings ImageTypesFirmwareVersions ImageNumbers OwnerNames Macromodes SelfTimers SuperfinesFlash Not FiredsRed-Eye Reductions Slow SynchrosAuto + Red-Eye ReductionsOn + Red-Eye Reductionsexternal flashsContinuousDriveModesSingle Or Timers ContinuoussOne-ShotsAI ServosAI FocussMFsSingles ImageSizesLargesMediumsSmallsEasyShootingModes Full Autos Fast Shutters Slow ShuttersSepiasMacro/Close-Ups Pan FocussNones2xs4xisISOsSee ISOSpeedRatings Tags50s100s200s400s EvaluativesPartialsCenter-weighteds FocusTypesClose-Up (Macro)sLocked (Pan Mode)sAFPointSelectedi0s None (MF)i0s Auto-Selectedi0i0i0s ExposureModes Easy ShootingsPrograms Tv-prioritys Av-prioritysA-DEPs!LongFocalLengthOfLensInFocalUnitss"ShortFocalLengthOfLensInFocalUnitssFocalUnitsPerMMis FlashActivitys Did Not Fires FlashDetailssExternal E-TTLsInternal Flashs FP Sync Useds2nd("Rear")-Curtain Sync UsedsFP Sync EnabledsSunnysSequenceNumbers AFPointUseds FlashBiasis-2 EVis-1.67 EVis-1.50 EVis-1.33 EVis-1 EVis-0.67 EVis-0.50 EVis-0.33 EVs0 EVs0.33 EVs0.50 EVs0.67 EVs1 EVi,s1.33 EVi0s1.50 EVi4s1.67 EVs2 EVcCs3d}x"|D]}|d>t|B}q W|SdS(Nii(sxsstrscsord(sstrsxsc((s:/mnt/gmirror/ports/www/zope-cmfphoto/work/CMFPhoto/EXIF.pys s2n_motorolats cCsCd}d}x,|D]$}|t||>B}|d}qW|SdS(Nii(sxsysstrscsord(sstrsysxsc((s:/mnt/gmirror/ports/www/zope-cmfphoto/work/CMFPhoto/EXIF.pys s2n_intel{scCs*|djo|Snt|||SdS(Ni(sbsasgcd(sasb((s:/mnt/gmirror/ports/www/zope-cmfphoto/work/CMFPhoto/EXIF.pysgcds cBs#tZdZdZdZRS(NcCs||_||_dS(N(snumsselfsden(sselfsnumsden((s:/mnt/gmirror/ports/www/zope-cmfphoto/work/CMFPhoto/EXIF.pys__init__s cCsC|i|idjot|iSnd|i|ifSdS(Nis%d/%d(sselfsreducesdensstrsnum(sself((s:/mnt/gmirror/ports/www/zope-cmfphoto/work/CMFPhoto/EXIF.pys__repr__s cCsJt|i|i}|djo$|i||_|i||_ndS(Ni(sgcdsselfsnumsdensdiv(sselfsdiv((s:/mnt/gmirror/ports/www/zope-cmfphoto/work/CMFPhoto/EXIF.pysreduces (s__name__s __module__s__init__s__repr__sreduce(((s:/mnt/gmirror/ports/www/zope-cmfphoto/work/CMFPhoto/EXIF.pysRatios  sIFD_TagcBs#tZdZdZdZRS(NcCs:||_||_||_||_||_||_dS(N(s printablesselfstags field_types field_offsets field_lengthsvalues(sselfs printablestags field_typesvaluess field_offsets field_length((s:/mnt/gmirror/ports/www/zope-cmfphoto/work/CMFPhoto/EXIF.pys__init__s      cCs |iSdS(N(sselfs printable(sself((s:/mnt/gmirror/ports/www/zope-cmfphoto/work/CMFPhoto/EXIF.pys__str__scCs,d|it|id|i|ifSdS(Ns(0x%04X) %s=%s @ %di(sselfstags FIELD_TYPESs field_types printables field_offset(sself((s:/mnt/gmirror/ports/www/zope-cmfphoto/work/CMFPhoto/EXIF.pys__repr__s(s__name__s __module__s__init__s__str__s__repr__(((s:/mnt/gmirror/ports/www/zope-cmfphoto/work/CMFPhoto/EXIF.pysIFD_Tags s EXIF_headercBsktZddZddZdZdZdZdZedZ d Z d Z d Z RS( NicCs1||_||_||_||_h|_dS(N(sfilesselfsendiansoffsetsdebugstags(sselfsfilesendiansoffsetsdebug((s:/mnt/gmirror/ports/www/zope-cmfphoto/work/CMFPhoto/EXIF.pys__init__s     cCs|ii|i||ii|}|idjot|}n t |}|o3dd|d>}||@o||d>}qn|SdS(NsIii( sselfsfilesseeksoffsetsreadslengthsslicesendians s2n_intelsvals s2n_motorolassignedsmsb(sselfsoffsetslengthssignedsslicesvalsmsb((s:/mnt/gmirror/ports/www/zope-cmfphoto/work/CMFPhoto/EXIF.pyss2ns  cCskd}xZt|D]L}|idjo|t|d@}nt|d@|}|d?}qW|SdS(NssIii(sssrangeslengthsisselfsendianschrsoffset(sselfsoffsetslengthsiss((s:/mnt/gmirror/ports/www/zope-cmfphoto/work/CMFPhoto/EXIF.pysn2ss cCs|iddSdS(Ni(sselfss2n(sself((s:/mnt/gmirror/ports/www/zope-cmfphoto/work/CMFPhoto/EXIF.pys first_IFDscCs2|i|d}|i|dd|dSdS(Nii i(sselfss2nsifdsentries(sselfsifdsentries((s:/mnt/gmirror/ports/www/zope-cmfphoto/work/CMFPhoto/EXIF.pysnext_IFDscCsE|i}g}x(|o |i||i|}qW|SdS(N(sselfs first_IFDsisasappendsnext_IFD(sselfsisa((s:/mnt/gmirror/ports/www/zope-cmfphoto/work/CMFPhoto/EXIF.pys list_IFDss  c CsE|i|d}x,t|D]}|dd|}|i|d}|i|dd}d|jot t jn ot d||fnt |d} |i|dd} |d} | | djo|i| d} n| } |djoV| djo?|ii|i| |ii| iidd}qd}ng}|d dd d gj}xt| D]z}|d d fjo5t|i| d||i| dd|}n|i| | |}|i|| | } qW| d jo |djot|d} n t|} |i|}|o|d}t |d jo`t!|d o|d |} qd} x2|D]&}| |d i|t"|7} qWqn d|}t#| |||| | | |i$|d|<|i&o(d|t"|i$|d|fGHqqWdS(Nii isunknown type %d in tag 0x%04Xiissii i iis Tag 0x%04Xs s %s: %s('sselfss2nsifdsentriessrangesisentrystags field_typeslens FIELD_TYPESs ValueErrorstypelenscountsoffsets field_offsetsfilesseeksreadsstripsreplacesvaluesssignedsjsRatiosvalue_jsappendsstrs printablesdictsgets tag_entrystag_namescallablesreprsIFD_Tagstagssifd_namesdebug(sselfsifdsifd_namesdictsentriesstags field_typestag_names tag_entrys printablestypelens field_offsetsoffsetscountsisjssignedsvaluessvalue_jsentry((s:/mnt/gmirror/ports/www/zope-cmfphoto/work/CMFPhoto/EXIF.pysdump_IFDsb %   (      ,   cCsy|i|d} |idjo d}nd}|ii|i|||ii | ddd7}xLt | D]>}|dd|}|i|d} |i|dd}t|d} |i|dd}|i|d d}|dd }| d jo|}|| } n|| djot|} || |i| d||d}| d jo| }d} n|ii|i|||ii || 7}qxqxW|id i}|id i}xt t|D]w}|it|| }|| |||| }|| 7}|ii|i||||ii ||7}qW||id