Rev 5009 | Rev 6315 | Go to most recent revision | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 5009 | Rev 5010 | ||
---|---|---|---|
Line 8... | Line 8... | ||
8 | 8 | ||
9 | 9 | ||
10 | ;--------- |
10 | ;--------- |
- | 11 | offs_m_or_i equ 8 ;ᬥ饨¥ ¯ à ¬¥âà 'MM' ¨«¨ 'II' (Motorola, Intel) |
|
11 | offs_m_or_i equ 8 ;ᬥ饨¥ ¯ à ¬¥âà 'MM' ¨«¨ 'II' (Motorola, Intel) |
12 | offs_id_gr equ 10 ;ᬥ饨¥ id group |
12 | offs_id_gr equ 10 ;ᬥ饨¥ id group |
13 | offs_id_gr_mak equ 12 ;ᬥ饨¥ id group ¯à®¨§¢®¤¨â¥«ï |
13 | offs_tag_0 equ 2 ;ᬥ饨¥ 0-£® ⥣ |
14 | offs_tag_0 equ 2 ;ᬥ饨¥ 0-£® ⥣ |
14 | tag_size equ 12 ;à §¬¥à áâàãªâãàë ⥣ |
15 | tag_size equ 12 ;à §¬¥à áâàãªâãàë ⥣ |
15 | ;ä®à¬ âë ¤ ëå |
16 | ;ä®à¬ âë ¤ ëå |
Line 29... | Line 30... | ||
29 | align 4 |
30 | align 4 |
30 | txt_dp db ': ',0 |
31 | txt_dp db ': ',0 |
31 | txt_zap db ', ',0 |
32 | txt_zap db ', ',0 |
32 | txt_div db '/',0 |
33 | txt_div db '/',0 |
Line 33... | Line -... | ||
33 | - | ||
- | 34 | ||
34 | ; |
35 | ;§ £®«®¢®ª â ¡«¨æ á £à㯯 ¬¨ ⥣®¢ |
35 | align 4 |
36 | align 4 |
36 | exif_tag_numbers: |
37 | exif_tag_numbers: |
37 | dd 0, gr_0 |
38 | dd 0, gr_0 ;£à㯯 app1 |
38 | dd 0x8769, gr_8769 ;Exif offset |
39 | dd 0x8769, gr_8769 ;Exif offset |
39 | dd 0xa005, gr_a005 ;Interop offset |
40 | dd 0xa005, gr_a005 ;Interop offset |
- | 41 | dd 0x8825, gr_8825 ;GPS info |
|
- | 42 | ||
- | 43 | ;£àã¯ë app2 (§¤¥áì ã ª ¦¤®£® ¯à®¨§¢®¤¨â¥«ï ª ¬¥à ᢮© ä®à¬ â ⥣®¢) |
|
- | 44 | dw 0x927c ;app2 ¤«ï Nikon |
|
- | 45 | db 'Ni' |
|
- | 46 | dd gr_927c_Ni |
|
- | 47 | ||
- | 48 | dw 0x927c ;app2 ¤«ï Panasonic |
|
- | 49 | db 'Pa' |
|
- | 50 | dd gr_927c_Pa |
|
- | 51 | ||
- | 52 | dw 0x927c ;app2 ¤«ï Canon |
|
- | 53 | db 'Ca' |
|
40 | dd 0x8825, gr_8825 ;GPS info |
54 | dd gr_927c_Ca |
Line 41... | Line 55... | ||
41 | .end: |
55 | .end: |
42 | 56 | ||
43 | align 4 |
57 | align 4 |
Line 519... | Line 533... | ||
519 | db 0x00,0x1e,'GPS differential',0 |
533 | db 0x00,0x1e,'GPS differential',0 |
520 | db 0x00,0x1f,'GPS h positioning error',0 |
534 | db 0x00,0x1f,'GPS h positioning error',0 |
Line 521... | Line 535... | ||
521 | 535 | ||
Line -... | Line 536... | ||
- | 536 | dd 0 |
|
- | 537 | ||
- | 538 | ;¤ ë¥ app2 ¤«ï Nikon |
|
- | 539 | align 4 |
|
- | 540 | gr_927c_Ni: |
|
- | 541 | db 0x00,0x01,'MakerNoteVersion',0 |
|
- | 542 | db 0x00,0x02,'ISO',0 |
|
- | 543 | db 0x00,0x03,'ColorMode',0 |
|
- | 544 | db 0x00,0x04,'Quality',0 |
|
- | 545 | db 0x00,0x05,'WhiteBalance',0 |
|
- | 546 | db 0x00,0x06,'Sharpness',0 |
|
- | 547 | db 0x00,0x07,'FocusMode',0 |
|
- | 548 | db 0x00,0x08,'FlashSetting',0 |
|
- | 549 | db 0x00,0x09,'FlashType',0 |
|
- | 550 | db 0x00,0x0b,'WhiteBalanceFineTune',0 |
|
- | 551 | db 0x00,0x0c,'WB_RBLevels',0 |
|
- | 552 | db 0x00,0x0d,'ProgramShift',0 |
|
- | 553 | db 0x00,0x0e,'ExposureDifference',0 |
|
- | 554 | db 0x00,0x0f,'ISOSelection',0 |
|
- | 555 | db 0x00,0x10,'DataDump',0 |
|
- | 556 | db 0x00,0x11,'PreviewIFD',0 |
|
- | 557 | db 0x00,0x12,'FlashExposureComp',0 |
|
- | 558 | db 0x00,0x13,'ISOSetting',0 |
|
- | 559 | db 0x00,0x14,'ColorBalanceA ',0 |
|
- | 560 | db 0x00,0x16,'ImageBoundary',0 |
|
- | 561 | db 0x00,0x17,'ExternalFlashExposureComp',0 |
|
- | 562 | db 0x00,0x18,'FlashExposureBracketValue',0 |
|
- | 563 | db 0x00,0x19,'ExposureBracketValue',0 |
|
- | 564 | db 0x00,0x1a,'ImageProcessing',0 |
|
- | 565 | db 0x00,0x1b,'CropHiSpeed',0 |
|
- | 566 | db 0x00,0x1c,'ExposureTuning',0 |
|
- | 567 | db 0x00,0x1d,'SerialNumber',0 |
|
- | 568 | db 0x00,0x1e,'ColorSpace',0 |
|
- | 569 | db 0x00,0x1f,'VRInfo',0 |
|
- | 570 | db 0x00,0x20,'ImageAuthentication',0 |
|
- | 571 | db 0x00,0x21,'FaceDetect',0 |
|
- | 572 | db 0x00,0x22,'ActiveD-Lighting',0 |
|
- | 573 | db 0x00,0x23,'PictureControlData',0 |
|
- | 574 | db 0x00,0x24,'WorldTime',0 |
|
- | 575 | db 0x00,0x25,'ISOInfo',0 |
|
- | 576 | db 0x00,0x2a,'VignetteControl',0 |
|
- | 577 | db 0x00,0x2b,'DistortInfo',0 |
|
- | 578 | db 0x00,0x2c,'UnknownInfo',0 |
|
- | 579 | db 0x00,0x32,'UnknownInfo2',0 |
|
- | 580 | db 0x00,0x35,'HDRInfo',0 |
|
- | 581 | db 0x00,0x39,'LocationInfo',0 |
|
- | 582 | db 0x00,0x3d,'BlackLevel',0 |
|
- | 583 | db 0x00,0x80,'ImageAdjustment',0 |
|
- | 584 | db 0x00,0x81,'ToneComp',0 |
|
- | 585 | db 0x00,0x82,'AuxiliaryLens',0 |
|
- | 586 | db 0x00,0x83,'LensType',0 |
|
- | 587 | db 0x00,0x84,'Lens',0 |
|
- | 588 | db 0x00,0x85,'ManualFocusDistance',0 |
|
- | 589 | db 0x00,0x86,'DigitalZoom',0 |
|
- | 590 | db 0x00,0x87,'FlashMode',0 |
|
- | 591 | db 0x00,0x88,'AFInfo',0 |
|
- | 592 | db 0x00,0x89,'ShootingMode',0 |
|
- | 593 | db 0x00,0x8b,'LensFStops',0 |
|
- | 594 | db 0x00,0x8c,'ContrastCurve',0 |
|
- | 595 | db 0x00,0x8d,'ColorHue',0 |
|
- | 596 | db 0x00,0x8f,'SceneMode',0 |
|
- | 597 | db 0x00,0x90,'LightSource',0 |
|
- | 598 | db 0x00,0x91,'ShotInfo',0 |
|
- | 599 | db 0x00,0x92,'HueAdjustment',0 |
|
- | 600 | db 0x00,0x93,'NEFCompression',0 |
|
- | 601 | db 0x00,0x94,'Saturation',0 |
|
- | 602 | db 0x00,0x95,'NoiseReduction',0 |
|
- | 603 | db 0x00,0x96,'NEFLinearizationTable',0 |
|
- | 604 | db 0x00,0x97,'ColorBalance',0 |
|
- | 605 | db 0x00,0x98,'LensData',0 |
|
- | 606 | db 0x00,0x99,'RawImageCenter',0 |
|
- | 607 | db 0x00,0x9a,'SensorPixelSize',0 |
|
- | 608 | db 0x00,0x9c,'SceneAssist',0 |
|
- | 609 | db 0x00,0x9e,'RetouchHistory',0 |
|
- | 610 | db 0x00,0xa0,'SerialNumber',0 |
|
- | 611 | db 0x00,0xa2,'ImageDataSize',0 |
|
- | 612 | db 0x00,0xa5,'ImageCount',0 |
|
- | 613 | db 0x00,0xa6,'DeletedImageCount',0 |
|
- | 614 | db 0x00,0xa7,'ShutterCount',0 |
|
- | 615 | db 0x00,0xa8,'FlashInfo',0 |
|
- | 616 | db 0x00,0xa9,'ImageOptimization',0 |
|
- | 617 | db 0x00,0xaa,'Saturation',0 |
|
- | 618 | db 0x00,0xab,'VariProgram',0 |
|
- | 619 | db 0x00,0xac,'ImageStabilization',0 |
|
- | 620 | db 0x00,0xad,'AFResponse',0 |
|
- | 621 | db 0x00,0xb0,'MultiExposure',0 |
|
- | 622 | db 0x00,0xb1,'HighISONoiseReduction',0 |
|
- | 623 | db 0x00,0xb3,'ToningEffect',0 |
|
- | 624 | db 0x00,0xb6,'PowerUpTime',0 |
|
- | 625 | db 0x00,0xb7,'AFInfo2',0 |
|
- | 626 | db 0x00,0xb8,'FileInfo',0 |
|
- | 627 | db 0x00,0xb9,'AFTune',0 |
|
- | 628 | db 0x00,0xbd,'PictureControlData',0 |
|
- | 629 | db 0x00,0xc3,'BarometerInfo',0 |
|
- | 630 | db 0x0e,0x00,'PrintIM',0 |
|
- | 631 | db 0x0e,0x01,'NikonCaptureData',0 |
|
- | 632 | db 0x0e,0x09,'NikonCaptureVersion',0 |
|
- | 633 | db 0x0e,0x0e,'NikonCaptureOffsets',0 |
|
- | 634 | db 0x0e,0x10,'NikonScanIFD',0 |
|
- | 635 | db 0x0e,0x13,'NikonCaptureEditVersions ',0 |
|
- | 636 | db 0x0e,0x1d,'NikonICCProfile',0 |
|
- | 637 | db 0x0e,0x1e,'NikonCaptureOutput',0 |
|
- | 638 | db 0x0e,0x22,'NEFBitDepth',0 |
|
- | 639 | ||
- | 640 | dd 0 |
|
- | 641 | ||
- | 642 | ;¤ ë¥ app2 ¤«ï Panasonic |
|
- | 643 | align 4 |
|
- | 644 | gr_927c_Pa: |
|
- | 645 | db 0x00,0x01,'ImageQuality',0 |
|
- | 646 | db 0x00,0x02,'FirmwareVersion',0 |
|
- | 647 | db 0x00,0x03,'WhiteBalance',0 |
|
- | 648 | db 0x00,0x07,'FocusMode',0 |
|
- | 649 | db 0x00,0x0f,'AFAreaMode',0 |
|
- | 650 | db 0x00,0x1a,'ImageStabilization',0 |
|
- | 651 | db 0x00,0x1c,'MacroMode',0 |
|
- | 652 | db 0x00,0x1f,'ShootingMode',0 |
|
- | 653 | db 0x00,0x20,'Audio',0 |
|
- | 654 | db 0x00,0x21,'DataDump',0 |
|
- | 655 | db 0x00,0x23,'WhiteBalanceBias',0 |
|
- | 656 | db 0x00,0x24,'FlashBias',0 |
|
- | 657 | db 0x00,0x25,'InternalSerialNumber',0 |
|
- | 658 | db 0x00,0x26,'PanasonicExifVersion',0 |
|
- | 659 | db 0x00,0x28,'ColorEffect',0 |
|
- | 660 | db 0x00,0x29,'TimeSincePowerOn',0 |
|
- | 661 | db 0x00,0x2a,'BurstMode',0 |
|
- | 662 | db 0x00,0x2b,'SequenceNumber',0 |
|
- | 663 | db 0x00,0x2c,'ContrastMode',0 |
|
- | 664 | db 0x00,0x2d,'NoiseReduction',0 |
|
- | 665 | db 0x00,0x2e,'SelfTimer',0 |
|
- | 666 | db 0x00,0x30,'Rotation',0 |
|
- | 667 | db 0x00,0x31,'AFAssistLamp',0 |
|
- | 668 | db 0x00,0x32,'ColorMode',0 |
|
- | 669 | db 0x00,0x33,'BabyAge',0 |
|
- | 670 | db 0x00,0x34,'OpticalZoomMode',0 |
|
- | 671 | db 0x00,0x35,'ConversionLens',0 |
|
- | 672 | db 0x00,0x36,'TravelDay',0 |
|
- | 673 | db 0x00,0x39,'Contrast',0 |
|
- | 674 | db 0x00,0x3a,'WorldTimeLocation',0 |
|
- | 675 | db 0x00,0x3b,'TextStamp',0 |
|
- | 676 | db 0x00,0x3c,'ProgramISO',0 |
|
- | 677 | db 0x00,0x3d,'AdvancedSceneType',0 |
|
- | 678 | db 0x00,0x3f,'FacesDetected',0 |
|
- | 679 | db 0x00,0x40,'Saturation',0 |
|
- | 680 | db 0x00,0x41,'Sharpness',0 |
|
- | 681 | db 0x00,0x42,'FilmMode',0 |
|
- | 682 | db 0x00,0x44,'ColorTempKelvin',0 |
|
- | 683 | db 0x00,0x45,'BracketSettings',0 |
|
- | 684 | db 0x00,0x46,'WBShiftAB',0 |
|
- | 685 | db 0x00,0x47,'WBShiftGM',0 |
|
- | 686 | db 0x00,0x48,'FlashCurtain',0 |
|
- | 687 | db 0x00,0x49,'LongExposureNoiseReduction',0 |
|
- | 688 | db 0x00,0x4b,'PanasonicImageWidth',0 |
|
- | 689 | db 0x00,0x4c,'PanasonicImageHeight',0 |
|
- | 690 | db 0x00,0x4d,'AFPointPosition',0 |
|
- | 691 | db 0x00,0x51,'LensType',0 |
|
- | 692 | db 0x00,0x52,'LensSerialNumber',0 |
|
- | 693 | db 0x00,0x53,'AccessoryType',0 |
|
- | 694 | db 0x00,0x54,'AccessorySerialNumber',0 |
|
- | 695 | db 0x00,0x59,'Transform',0 |
|
- | 696 | db 0x00,0x5d,'IntelligentExposure',0 |
|
- | 697 | db 0x00,0x60,'LensFirmwareVersion',0 |
|
- | 698 | db 0x00,0x61,'FaceRecInfo',0 |
|
- | 699 | db 0x00,0x62,'FlashWarning',0 |
|
- | 700 | db 0x00,0x63,'RecognizedFaceFlags',0 |
|
- | 701 | db 0x00,0x65,'Title',0 |
|
- | 702 | db 0x00,0x66,'BabyName',0 |
|
- | 703 | db 0x00,0x67,'Location',0 |
|
- | 704 | db 0x00,0x69,'Country',0 |
|
- | 705 | db 0x00,0x6b,'State',0 |
|
- | 706 | db 0x00,0x6d,'City',0 |
|
- | 707 | db 0x00,0x6f,'Landmark',0 |
|
- | 708 | db 0x00,0x70,'IntelligentResolution',0 |
|
- | 709 | db 0x00,0x77,'BurstSpeed',0 |
|
- | 710 | db 0x00,0x79,'IntelligentD-Range',0 |
|
- | 711 | db 0x00,0x7c,'ClearRetouch',0 |
|
- | 712 | db 0x00,0x86,'ManometerPressure',0 |
|
- | 713 | db 0x00,0x89,'PhotoStyle',0 |
|
- | 714 | db 0x00,0x8a,'ShadingCompensation',0 |
|
- | 715 | db 0x00,0x8c,'AccelerometerZ',0 |
|
- | 716 | db 0x00,0x8d,'AccelerometerX',0 |
|
- | 717 | db 0x00,0x8e,'AccelerometerY',0 |
|
- | 718 | db 0x00,0x8f,'CameraOrientation',0 |
|
- | 719 | db 0x00,0x90,'RollAngle',0 |
|
- | 720 | db 0x00,0x91,'PitchAngle',0 |
|
- | 721 | db 0x00,0x93,'SweepPanoramaDirection',0 |
|
- | 722 | db 0x00,0x94,'SweepPanoramaFieldOfView',0 |
|
- | 723 | db 0x00,0x96,'TimerRecording',0 |
|
- | 724 | db 0x00,0x9d,'InternalNDFilter',0 |
|
- | 725 | db 0x00,0x9e,'HDR',0 |
|
- | 726 | db 0x00,0x9f,'ShutterType',0 |
|
- | 727 | db 0x00,0xa3,'ClearRetouchValue',0 |
|
- | 728 | db 0x00,0xab,'TouchAE',0 |
|
- | 729 | db 0x0e,0x00,'PrintIM',0 |
|
- | 730 | db 0x80,0x00,'MakerNoteVersion',0 |
|
- | 731 | db 0x80,0x01,'SceneMode',0 |
|
- | 732 | db 0x80,0x04,'WBRedLevel',0 |
|
- | 733 | db 0x80,0x05,'WBGreenLevel',0 |
|
- | 734 | db 0x80,0x06,'WBBlueLevel',0 |
|
- | 735 | db 0x80,0x07,'FlashFired',0 |
|
- | 736 | db 0x80,0x08,'TextStamp',0 |
|
- | 737 | db 0x80,0x09,'TextStamp',0 |
|
- | 738 | db 0x80,0x10,'BabyAge',0 |
|
- | 739 | db 0x80,0x12,'Transform',0 |
|
- | 740 | ||
- | 741 | dd 0 |
|
- | 742 | ||
- | 743 | ;¤ ë¥ app2 ¤«ï Canon |
|
- | 744 | align 4 |
|
- | 745 | gr_927c_Ca: |
|
- | 746 | db 0x00,0x01,'CanonCameraSettings',0 |
|
- | 747 | db 0x00,0x02,'CanonFocalLength',0 |
|
- | 748 | db 0x00,0x03,'CanonFlashInfo?',0 |
|
- | 749 | db 0x00,0x04,'CanonShotInfo',0 |
|
- | 750 | db 0x00,0x05,'CanonPanorama',0 |
|
- | 751 | db 0x00,0x06,'CanonImageType',0 |
|
- | 752 | db 0x00,0x07,'CanonFirmwareVersion',0 |
|
- | 753 | db 0x00,0x08,'FileNumber',0 |
|
- | 754 | db 0x00,0x09,'OwnerName',0 |
|
- | 755 | db 0x00,0x0a,'UnknownD30',0 |
|
- | 756 | db 0x00,0x0c,'SerialNumber',0 |
|
- | 757 | db 0x00,0x0d,'CanonCameraInfo',0 |
|
- | 758 | db 0x00,0x0e,'CanonFileLength',0 |
|
- | 759 | db 0x00,0x0f,'CustomFunctions',0 |
|
- | 760 | db 0x00,0x10,'CanonModelID',0 |
|
- | 761 | db 0x00,0x11,'MovieInfo',0 |
|
- | 762 | db 0x00,0x12,'CanonAFInfo',0 |
|
- | 763 | db 0x00,0x13,'ThumbnailImageValidArea',0 |
|
- | 764 | db 0x00,0x15,'SerialNumberFormat',0 |
|
- | 765 | db 0x00,0x1a,'SuperMacro',0 |
|
- | 766 | db 0x00,0x1c,'DateStampMode',0 |
|
- | 767 | db 0x00,0x1d,'MyColors',0 |
|
- | 768 | db 0x00,0x1e,'FirmwareRevision',0 |
|
- | 769 | db 0x00,0x23,'Categories',0 |
|
- | 770 | db 0x00,0x24,'FaceDetect1',0 |
|
- | 771 | db 0x00,0x25,'FaceDetect2',0 |
|
- | 772 | db 0x00,0x26,'CanonAFInfo2',0 |
|
- | 773 | db 0x00,0x27,'ContrastInfo',0 |
|
- | 774 | db 0x00,0x28,'ImageUniqueID',0 |
|
- | 775 | db 0x00,0x2f,'FaceDetect3',0 |
|
- | 776 | db 0x00,0x35,'TimeInfo',0 |
|
- | 777 | db 0x00,0x81,'RawDataOffset',0 |
|
- | 778 | db 0x00,0x83,'OriginalDecisionDataOffset',0 |
|
- | 779 | db 0x00,0x90,'CustomFunctions1D',0 |
|
- | 780 | db 0x00,0x91,'PersonalFunctions',0 |
|
- | 781 | db 0x00,0x92,'PersonalFunctionValues',0 |
|
- | 782 | db 0x00,0x93,'CanonFileInfo',0 |
|
- | 783 | db 0x00,0x94,'AFPointsInFocus1D',0 |
|
- | 784 | db 0x00,0x95,'LensModel',0 |
|
- | 785 | db 0x00,0x96,'SerialInfo ',0 |
|
- | 786 | db 0x00,0x97,'DustRemovalData',0 |
|
- | 787 | db 0x00,0x98,'CropInfo',0 |
|
- | 788 | db 0x00,0x99,'CustomFunctions2',0 |
|
- | 789 | db 0x00,0x9a,'AspectInfo',0 |
|
- | 790 | db 0x00,0xa0,'ProcessingInfo',0 |
|
- | 791 | db 0x00,0xa1,'ToneCurveTable',0 |
|
- | 792 | db 0x00,0xa2,'SharpnessTable',0 |
|
- | 793 | db 0x00,0xa3,'SharpnessFreqTable',0 |
|
- | 794 | db 0x00,0xa4,'WhiteBalanceTable',0 |
|
- | 795 | db 0x00,0xa9,'ColorBalance',0 |
|
- | 796 | db 0x00,0xaa,'MeasuredColor',0 |
|
- | 797 | db 0x00,0xae,'ColorTemperature',0 |
|
- | 798 | db 0x00,0xb0,'CanonFlags',0 |
|
- | 799 | db 0x00,0xb1,'ModifiedInfo',0 |
|
- | 800 | db 0x00,0xb2,'ToneCurveMatching',0 |
|
- | 801 | db 0x00,0xb3,'WhiteBalanceMatching',0 |
|
- | 802 | db 0x00,0xb4,'ColorSpace',0 |
|
- | 803 | db 0x00,0xb6,'PreviewImageInfo',0 |
|
- | 804 | db 0x00,0xd0,'VRDOffset',0 |
|
- | 805 | db 0x00,0xe0,'SensorInfo',0 |
|
- | 806 | db 0x40,0x01,'ColorData',0 |
|
- | 807 | db 0x40,0x02,'CRWParam?',0 |
|
- | 808 | db 0x40,0x03,'ColorInfo',0 |
|
- | 809 | db 0x40,0x05,'Flavor?',0 |
|
- | 810 | db 0x40,0x08,'BlackLevel?',0 |
|
- | 811 | db 0x40,0x10,'CustomPictureStyleFileName',0 |
|
- | 812 | db 0x40,0x13,'AFMicroAdj',0 |
|
- | 813 | db 0x40,0x15,'VignettingCorr ',0 |
|
- | 814 | db 0x40,0x16,'VignettingCorr2',0 |
|
- | 815 | db 0x40,0x18,'LightingOpt',0 |
|
- | 816 | db 0x40,0x19,'LensInfo',0 |
|
- | 817 | db 0x40,0x20,'AmbienceInfo',0 |
|
- | 818 | db 0x40,0x24,'FilterInfo',0 |
|
- | 819 | ||
522 | dd 0 |
820 | dd 0 |
523 | 821 | ||
524 | ;input: |
822 | ;input: |
525 | ; bof - 㪠§ ⥫ì ç «® ä ©« |
823 | ; bof - 㪠§ ⥫ì ç «® ä ©« |
526 | ; app1 - 㪠§ â¥«ì ¤«ï § ¯®«¥¨ï exif.app1 |
824 | ; app1 - 㪠§ â¥«ì ¤«ï § ¯®«¥¨ï exif.app1 |
Line 552... | Line 850... | ||
552 | xor ebx,ebx |
850 | xor ebx,ebx |
553 | cmp word[eax+10],'II' |
851 | cmp word[eax+10],'II' |
554 | je @f |
852 | je @f |
555 | inc ebx ;if 'MM' edx=1 |
853 | inc ebx ;if 'MM' edx=1 |
556 | @@: |
854 | @@: |
557 | mov [edi+offs_m_or_i],ebx |
- | |
558 | ;¯¨è¥¬ ®¤®© ª®¬ ¤®© ¢ dword[edi+offs_m_or_i] |
- | |
559 | ;¢ ¬« ¤è¨¥ 2 ¡ ©â ᯮᮡ ¢ëà ¢¨¢ ¨ï ç¨á¥« |
855 | mov word[edi+offs_m_or_i],bx ;ᯮᮡ ¢ëà ¢¨¢ ¨ï ç¨á¥« |
560 | ;¢ áâ à訥 2 ¡ ©â id £àã¯ë, ª®â®àë© ¢á¥£¤ 0 ¤«ï app1 |
856 | mov dword[edi+offs_id_gr],0 ;id £àã¯ë ¨ ¯à®¨§¢®¤¨â¥«ï, ª®â®àë© ¢á¥£¤ 0 ¤«ï app1 |
561 | add eax,18 |
857 | add eax,18 |
562 | mov [edi],eax |
858 | mov [edi],eax |
563 | sub eax,8 |
859 | sub eax,8 |
564 | mov [edi+4],eax |
860 | mov [edi+4],eax |
Line 671... | Line 967... | ||
671 | m2m dword[edi+4],dword[eax+4] |
967 | m2m dword[edi+4],dword[eax+4] |
672 | ror edx,16 |
968 | ror edx,16 |
673 | mov dx,word[c_tag] |
969 | mov dx,word[c_tag] |
674 | ror edx,16 |
970 | ror edx,16 |
675 | mov dword[edi+offs_m_or_i],edx |
971 | mov dword[edi+offs_m_or_i],edx |
- | 972 | m2m word[edi+offs_id_gr_mak],word[eax+offs_id_gr_mak] |
|
Line 676... | Line 973... | ||
676 | 973 | ||
677 | jmp .end_f |
974 | jmp .end_f |
678 | .no_found: |
975 | .no_found: |
679 | mov dword[edi],0 |
976 | mov dword[edi],0 |
Line 754... | Line 1051... | ||
754 | .suport: |
1051 | .suport: |
755 | ; 室¨¬ ⥣ 0x8769 (à áè¨à¥ë¥ ¤ ë¥ ¯® Exif) |
1052 | ; 室¨¬ ⥣ 0x8769 (à áè¨à¥ë¥ ¤ ë¥ ¯® Exif) |
756 | stdcall exif_get_app1_child, eax,edi,0x8769 |
1053 | stdcall exif_get_app1_child, eax,edi,0x8769 |
757 | cmp dword[edi],0 |
1054 | cmp dword[edi],0 |
758 | je .no_suport |
1055 | je .no_suport |
759 | ; 室¨¬ ⥣ 0xa005 (¤ ë¥ Maker ¯® ª ¬¥à¥) |
1056 | ; 室¨¬ ⥣ 0x927c (¤ ë¥ Maker ¯® ª ¬¥à¥) |
760 | stdcall exif_get_app1_child, edi,edi, 0x927c |
1057 | stdcall exif_get_app1_child, edi,edi, 0x927c |
761 | cmp dword[edi],0 |
1058 | cmp dword[edi],0 |
762 | je .no_suport |
1059 | je .no_suport |
Line 763... | Line 1060... | ||
763 | 1060 | ||
764 | cmp dword[ebx],'NIKO' |
1061 | cmp dword[ebx],'NIKO' |
- | 1062 | jne @f |
|
765 | jne @f |
1063 | ;for Nikon |
- | 1064 | add dword[edi],18 |
|
- | 1065 | mov eax,dword[edi] |
|
- | 1066 | sub eax,8 |
|
- | 1067 | mov dword[edi+4],eax |
|
766 | add dword[edi],18 ;for Nikon |
1068 | mov word[edi+offs_id_gr_mak],'Ni' |
767 | @@: |
1069 | @@: |
768 | cmp dword[ebx],'Pana' |
1070 | cmp dword[ebx],'Pana' |
- | 1071 | jne @f |
|
769 | jne @f |
1072 | ;for Panasonic |
- | 1073 | add dword[edi],12 |
|
- | 1074 | mov word[edi+offs_id_gr_mak],'Pa' |
|
- | 1075 | @@: |
|
- | 1076 | cmp dword[ebx],'Cano' |
|
- | 1077 | jne @f |
|
- | 1078 | ;for Canon |
|
770 | add dword[edi],12 ;for Panasonic |
1079 | mov word[edi+offs_id_gr_mak],'Ca' |
Line 771... | Line 1080... | ||
771 | @@: |
1080 | @@: |
772 | 1081 | ||
773 | jmp @f |
1082 | jmp @f |
Line 788... | Line 1097... | ||
788 | push exif_tag_numbers |
1097 | push exif_tag_numbers |
789 | pop esi |
1098 | pop esi |
Line 790... | Line 1099... | ||
790 | 1099 | ||
791 | ;¯®¨áª â ¡«¨æë ¤«ï £à㯯ë ⥣®¢ |
1100 | ;¯®¨áª â ¡«¨æë ¤«ï £à㯯ë ⥣®¢ |
792 | mov ebx,[app1] |
1101 | mov ebx,[app1] |
793 | mov bx,word[ebx+offs_id_gr] ;¡¥à¥¬ ¨¤¥â¨ä¨ª â®à £à㯯ë ⥣®¢ |
1102 | mov ebx,dword[ebx+offs_id_gr] ;¡¥à¥¬ ¨¤¥â¨ä¨ª â®à £à㯯ë ⥣®¢ |
794 | @@: |
1103 | @@: |
795 | cmp word[esi],bx |
1104 | cmp dword[esi],ebx |
796 | je .set_table |
1105 | je .set_table |
797 | add esi,8 |
1106 | add esi,8 |
798 | cmp esi,exif_tag_numbers.end |
1107 | cmp esi,exif_tag_numbers.end |
799 | jge .tag_unknown ;⥣ ¥ ®¯®§ (¥ ©¤¥ â ¡«¨æ £à㯯ë ⥣®¢) |
1108 | jge .tag_unknown ;⥣ ¥ ®¯®§ (¥ ©¤¥ â ¡«¨æ £à㯯ë ⥣®¢) |
Line 862... | Line 1171... | ||
862 | ;¥á«¨ 1 ®¤® ¡ ©â®¢®¥ ç¨á«® |
1171 | ;¥á«¨ 1 ®¤® ¡ ©â®¢®¥ ç¨á«® |
863 | movzx ebx,byte[eax+8] |
1172 | movzx ebx,byte[eax+8] |
864 | stdcall str_len,edi |
1173 | stdcall str_len,edi |
865 | add edi,eax |
1174 | add edi,eax |
866 | mov eax,ebx |
1175 | mov eax,ebx |
867 | call convert_int_to_str ;[t_max] |
1176 | stdcall convert_int_to_str, [t_max] |
868 | bt edx,1 |
1177 | bt edx,1 |
869 | jnc .end_f |
1178 | jnc .end_f |
870 | @@: |
1179 | @@: |
871 | ;¥á«¨ ®â 2 ¤® 4 ®¤® ¡ ©â®¢ëå ç¨á¥« |
1180 | ;¥á«¨ ®â 2 ¤® 4 ®¤® ¡ ©â®¢ëå ç¨á¥« |
872 | dec dh |
1181 | dec dh |
Line 875... | Line 1184... | ||
875 | shr ecx,8 |
1184 | shr ecx,8 |
876 | stdcall str_n_cat,edi,txt_zap,[t_max] |
1185 | stdcall str_n_cat,edi,txt_zap,[t_max] |
877 | stdcall str_len,edi |
1186 | stdcall str_len,edi |
878 | add edi,eax |
1187 | add edi,eax |
879 | movzx eax,cl |
1188 | movzx eax,cl |
880 | call convert_int_to_str ;[t_max] |
1189 | stdcall convert_int_to_str, [t_max] |
881 | jmp @b |
1190 | jmp @b |
882 | .over4b_01: |
1191 | .over4b_01: |
883 | ;... |
1192 | ;... |
884 | jmp .end_f |
1193 | jmp .end_f |
885 | .tag_01: |
1194 | .tag_01: |
Line 942... | Line 1251... | ||
942 | ror bx,8 |
1251 | ror bx,8 |
943 | @@: |
1252 | @@: |
944 | stdcall str_len,edi |
1253 | stdcall str_len,edi |
945 | add edi,eax |
1254 | add edi,eax |
946 | mov eax,ebx |
1255 | mov eax,ebx |
947 | call convert_int_to_str ;[t_max] |
1256 | stdcall convert_int_to_str, [t_max] |
948 | bt edx,1 ;array ? |
1257 | bt edx,1 ;array ? |
949 | jnc .end_f |
1258 | jnc .end_f |
950 | ;¤®¡ ¢«ï¥¬ 2-¥ ç¨á«® |
1259 | ;¤®¡ ¢«ï¥¬ 2-¥ ç¨á«® |
951 | stdcall str_n_cat,edi,txt_zap,[t_max] |
1260 | stdcall str_n_cat,edi,txt_zap,[t_max] |
952 | stdcall str_len,edi |
1261 | stdcall str_len,edi |
953 | add edi,eax |
1262 | add edi,eax |
954 | mov eax,ecx |
1263 | mov eax,ecx |
955 | call convert_int_to_str ;[t_max] |
1264 | stdcall convert_int_to_str, [t_max] |
956 | .over4b_03: |
- | |
957 | ;... |
- | |
958 | jmp .end_f |
1265 | jmp .end_f |
- | 1266 | .over4b_03: |
|
- | 1267 | mov ecx,[t_max] |
|
- | 1268 | mov esi,dword[eax+8] |
|
- | 1269 | bt edx,0 |
|
- | 1270 | jnc @f |
|
- | 1271 | ror si,8 |
|
- | 1272 | ror esi,16 |
|
- | 1273 | ror si,8 |
|
- | 1274 | @@: |
|
- | 1275 | mov eax,[app1] |
|
- | 1276 | mov eax,[eax+4] |
|
- | 1277 | add esi,eax |
|
- | 1278 | ||
- | 1279 | ;¡¥à¥¬ ç¨á«® |
|
- | 1280 | .array_03: |
|
- | 1281 | stdcall str_len,edi |
|
- | 1282 | cmp ecx,eax |
|
- | 1283 | jle .end_f ;¥á«¨ ¥ å¢ â¨«® áâப¨ |
|
- | 1284 | add edi,eax |
|
- | 1285 | sub ecx,eax |
|
- | 1286 | movzx eax,word[esi] |
|
- | 1287 | bt edx,0 |
|
- | 1288 | jnc @f |
|
- | 1289 | ror ax,8 |
|
- | 1290 | @@: |
|
- | 1291 | stdcall convert_int_to_str,ecx |
|
- | 1292 | ||
- | 1293 | dec ebx |
|
- | 1294 | cmp ebx,0 |
|
- | 1295 | je .end_f |
|
- | 1296 | ||
- | 1297 | ;¤®¡ ¢«ï¥¬ § ¯ïâãî |
|
- | 1298 | stdcall str_n_cat,edi,txt_zap,ecx |
|
- | 1299 | add esi,2 |
|
- | 1300 | jmp .array_03 |
|
959 | .tag_03: |
1301 | .tag_03: |
Line 960... | Line 1302... | ||
960 | 1302 | ||
961 | mov bx,tag_format_ui4b |
1303 | mov bx,tag_format_ui4b |
962 | bt edx,0 |
1304 | bt edx,0 |
Line 978... | Line 1320... | ||
978 | ror bx,8 |
1320 | ror bx,8 |
979 | @@: |
1321 | @@: |
980 | stdcall str_len,edi |
1322 | stdcall str_len,edi |
981 | add edi,eax |
1323 | add edi,eax |
982 | mov eax,ebx |
1324 | mov eax,ebx |
983 | call convert_int_to_str ;[t_max] |
1325 | stdcall convert_int_to_str, [t_max] |
984 | .over4b_04: |
1326 | .over4b_04: |
985 | ;... |
1327 | ;... |
986 | jmp .end_f |
1328 | jmp .end_f |
987 | .tag_04: |
1329 | .tag_04: |
Line 1014... | Line 1356... | ||
1014 | jnc @f |
1356 | jnc @f |
1015 | ror ax,8 |
1357 | ror ax,8 |
1016 | ror eax,16 |
1358 | ror eax,16 |
1017 | ror ax,8 |
1359 | ror ax,8 |
1018 | @@: |
1360 | @@: |
1019 | call convert_int_to_str ;áâ ¢¨¬ 1-¥ ç¨á«® |
1361 | stdcall convert_int_to_str, [t_max] ;áâ ¢¨¬ 1-¥ ç¨á«® |
1020 | stdcall str_n_cat,edi,txt_div,[t_max] ;áâ ¢¨¬ § ª ¤¥«¥¨ï |
1362 | stdcall str_n_cat,edi,txt_div,[t_max] ;áâ ¢¨¬ § ª ¤¥«¥¨ï |
1021 | stdcall str_len,edi |
1363 | stdcall str_len,edi |
1022 | add edi,eax |
1364 | add edi,eax |
1023 | mov eax,[ebx+4] |
1365 | mov eax,[ebx+4] |
1024 | bt edx,0 |
1366 | bt edx,0 |
1025 | jnc @f |
1367 | jnc @f |
1026 | ror ax,8 |
1368 | ror ax,8 |
1027 | ror eax,16 |
1369 | ror eax,16 |
1028 | ror ax,8 |
1370 | ror ax,8 |
1029 | @@: |
1371 | @@: |
1030 | call convert_int_to_str ;áâ ¢¨¬ 2-¥ ç¨á«® |
1372 | stdcall convert_int_to_str, [t_max] ;áâ ¢¨¬ 2-¥ ç¨á«® |
1031 | ;.over4b_05: |
1373 | ;.over4b_05: |
1032 | ;... |
1374 | ;... |
1033 | jmp .end_f |
1375 | jmp .end_f |
1034 | .tag_05: |
1376 | .tag_05: |
Line 1040... | Line 1382... | ||
1040 | @@: |
1382 | @@: |
1041 | cmp word[eax+2],bx |
1383 | cmp word[eax+2],bx |
1042 | jne .tag_08 |
1384 | jne .tag_08 |
1043 | stdcall str_n_cat,edi,txt_dp,[t_max] |
1385 | stdcall str_n_cat,edi,txt_dp,[t_max] |
1044 | call get_tag_data_size |
1386 | call get_tag_data_size |
1045 | cmp ebx,1 |
1387 | cmp ebx,2 |
1046 | jg .over4b_08 |
1388 | jg .over4b_08 |
- | 1389 | jne @f |
|
- | 1390 | ;¥á«¨ ¤¢ 2 ¡ ©â®¢ëå ç¨á« |
|
- | 1391 | or edx,2 ;array data |
|
- | 1392 | movzx ecx,word[eax+10] |
|
- | 1393 | bt edx,0 |
|
- | 1394 | jnc @f |
|
- | 1395 | ror cx,8 |
|
- | 1396 | @@: |
|
1047 | ;¥á«¨ ®¤® 2 ¡ ©â®¢®¥ ç¨á«® |
1397 | ;¥á«¨ ®¤® 2 ¡ ©â®¢®¥ ç¨á«® |
1048 | movzx ebx,word[eax+8] |
1398 | movzx ebx,word[eax+8] |
1049 | bt edx,0 |
1399 | bt edx,0 |
1050 | jnc @f |
1400 | jnc @f |
1051 | ror bx,8 |
1401 | ror bx,8 |
Line 1058... | Line 1408... | ||
1058 | inc edi |
1408 | inc edi |
1059 | neg bx |
1409 | neg bx |
1060 | inc bx |
1410 | inc bx |
1061 | @@: |
1411 | @@: |
1062 | mov eax,ebx |
1412 | mov eax,ebx |
1063 | call convert_int_to_str ;[t_max] |
1413 | stdcall convert_int_to_str, [t_max] |
- | 1414 | bt edx,1 ;array ? |
|
- | 1415 | jnc .end_f |
|
- | 1416 | ;¤®¡ ¢«ï¥¬ 2-¥ ç¨á«® |
|
- | 1417 | stdcall str_n_cat,edi,txt_zap,[t_max] |
|
- | 1418 | stdcall str_len,edi |
|
- | 1419 | add edi,eax |
|
- | 1420 | bt bx,15 |
|
- | 1421 | jnc @f |
|
- | 1422 | mov byte[edi],'-' |
|
- | 1423 | inc edi |
|
1064 | .over4b_08: |
1424 | neg bx |
- | 1425 | inc bx |
|
1065 | ;... |
1426 | @@: |
- | 1427 | mov eax,ecx |
|
- | 1428 | stdcall convert_int_to_str, [t_max] |
|
1066 | jmp .end_f |
1429 | jmp .end_f |
- | 1430 | .over4b_08: |
|
- | 1431 | mov ecx,[t_max] |
|
- | 1432 | mov esi,dword[eax+8] |
|
- | 1433 | bt edx,0 |
|
- | 1434 | jnc @f |
|
- | 1435 | ror si,8 |
|
- | 1436 | ror esi,16 |
|
- | 1437 | ror si,8 |
|
- | 1438 | @@: |
|
- | 1439 | mov eax,[app1] |
|
- | 1440 | mov eax,[eax+4] |
|
- | 1441 | add esi,eax |
|
- | 1442 | ||
- | 1443 | ;¡¥à¥¬ ç¨á«® |
|
- | 1444 | .array_08: |
|
- | 1445 | stdcall str_len,edi |
|
- | 1446 | cmp ecx,eax |
|
- | 1447 | jle .end_f ;¥á«¨ ¥ å¢ â¨«® áâப¨ |
|
- | 1448 | add edi,eax |
|
- | 1449 | sub ecx,eax |
|
- | 1450 | movzx eax,word[esi] |
|
- | 1451 | bt edx,0 |
|
- | 1452 | jnc @f |
|
- | 1453 | ror ax,8 |
|
- | 1454 | @@: |
|
- | 1455 | ;ᬮâਬ § ª +|- |
|
- | 1456 | bt ax,15 |
|
- | 1457 | jnc @f |
|
- | 1458 | mov byte[edi],'-' |
|
- | 1459 | inc edi |
|
- | 1460 | neg ax |
|
- | 1461 | inc ax |
|
- | 1462 | @@: |
|
- | 1463 | stdcall convert_int_to_str,ecx |
|
- | 1464 | ||
- | 1465 | dec ebx |
|
- | 1466 | cmp ebx,0 |
|
- | 1467 | je .end_f |
|
- | 1468 | ||
- | 1469 | ;¤®¡ ¢«ï¥¬ § ¯ïâãî |
|
- | 1470 | stdcall str_n_cat,edi,txt_zap,ecx |
|
- | 1471 | add esi,2 |
|
- | 1472 | jmp .array_08 |
|
1067 | .tag_08: |
1473 | .tag_08: |
Line 1068... | Line 1474... | ||
1068 | 1474 | ||
1069 | mov bx,tag_format_si4b |
1475 | mov bx,tag_format_si4b |
1070 | bt edx,0 |
1476 | bt edx,0 |
Line 1093... | Line 1499... | ||
1093 | inc edi |
1499 | inc edi |
1094 | neg ebx |
1500 | neg ebx |
1095 | inc ebx |
1501 | inc ebx |
1096 | @@: |
1502 | @@: |
1097 | mov eax,ebx |
1503 | mov eax,ebx |
1098 | call convert_int_to_str ;[t_max] |
1504 | stdcall convert_int_to_str, [t_max] |
1099 | .over4b_09: |
1505 | .over4b_09: |
1100 | ;... |
1506 | ;... |
1101 | jmp .end_f |
1507 | jmp .end_f |
1102 | .tag_09: |
1508 | .tag_09: |
Line 1174... | Line 1580... | ||
1174 | popad |
1580 | popad |
1175 | ret |
1581 | ret |
1176 | endp |
1582 | endp |
Line 1177... | Line 1583... | ||
1177 | 1583 | ||
1178 | ;input: |
1584 | ;input: |
1179 | ; eax = value |
1585 | ; eax - ç¨á«® |
- | 1586 | ; edi - ¡ãä¥à ¤«ï áâப¨ |
|
1180 | ; edi = string buffer |
1587 | ; len - ¤«¨ ¡ãä¥à |
1181 | ;output: |
1588 | ;output: |
1182 | align 4 |
1589 | align 4 |
1183 | convert_int_to_str: |
1590 | proc convert_int_to_str, len:dword |
1184 | pushad |
1591 | pushad |
1185 | mov dword[edi+1],0 |
1592 | mov esi,[len] |
- | 1593 | add esi,edi |
|
1186 | mov dword[edi+5],0 |
1594 | dec esi |
1187 | call .str |
1595 | call .str |
1188 | popad |
1596 | popad |
- | 1597 | ret |
|
Line 1189... | Line 1598... | ||
1189 | ret |
1598 | endp |
1190 | 1599 | ||
1191 | align 4 |
1600 | align 4 |
1192 | .str: |
1601 | .str: |
Line 1199... | Line 1608... | ||
1199 | push edx ;¯®«®¦¨âì ¢ á⥪ |
1608 | push edx ;¯®«®¦¨âì ¢ á⥪ |
1200 | ;dec edi ;ᬥ饨¥ ¥®¡å®¤¨¬®¥ ¤«ï § ¯¨á¨ á ª®æ áâப¨ |
1609 | ;dec edi ;ᬥ饨¥ ¥®¡å®¤¨¬®¥ ¤«ï § ¯¨á¨ á ª®æ áâப¨ |
1201 | call .str ;¯¥à¥©â¨ á ¬ã ᥡï â.¥. ¢ë§¢ âì á ¬ã á¥¡ï ¨ â ª ¤® ⮣® ¬®¬¥â ¯®ª ¢ eax ¥ á⠥⠬¥ìè¥ ç¥¬ ¢ ecx |
1610 | call .str ;¯¥à¥©â¨ á ¬ã ᥡï â.¥. ¢ë§¢ âì á ¬ã á¥¡ï ¨ â ª ¤® ⮣® ¬®¬¥â ¯®ª ¢ eax ¥ á⠥⠬¥ìè¥ ç¥¬ ¢ ecx |
1202 | pop eax |
1611 | pop eax |
1203 | @@: ;cmp al,10 ;¯à®¢¥à¨âì ¥ ¬¥ìè¥ «¨ § 票¥ ¢ al 祬 10 (¤«ï á¨á⥬ë áç¨á«¥ï 10 ¤ ï ª®¬ ¤ - «¨è ï)) |
1612 | @@: ;cmp al,10 ;¯à®¢¥à¨âì ¥ ¬¥ìè¥ «¨ § 票¥ ¢ al 祬 10 (¤«ï á¨á⥬ë áç¨á«¥ï 10 ¤ ï ª®¬ ¤ - «¨è ï)) |
- | 1613 | cmp edi,esi |
|
- | 1614 | jge @f |
|
1204 | or al,0x30 ;¤ ï ª®¬ ¤ ª®à®ç¥ 祬 ¤¢¥ ¢ëè¥ |
1615 | or al,0x30 ;¤ ï ª®¬ ¤ ª®à®ç¥ 祬 ¤¢¥ ¢ëè¥ |
1205 | stosb ;§ ¯¨á âì í«¥¬¥â ¨§ ॣ¨áâà al ¢ ï祪㠯 ¬ï⨠es:edi |
1616 | stosb ;§ ¯¨á âì í«¥¬¥â ¨§ ॣ¨áâà al ¢ ï祪㠯 ¬ï⨠es:edi |
- | 1617 | mov byte[edi],0 ;¢ ª®¥æ áâப¨ áâ ¢¨¬ 0, çâ®-¡ë ¥ ¢ë« §¨« ¬ãá®à |
|
- | 1618 | @@: |
|
1206 | ret ;¢¥àãâìáï ç¥ì ¨â¥à¥áë© å®¤ â.ª. ¯®ª ¢ á⥪¥ åà ¨âìáï ª®«-¢® ¢ë§®¢®¢ â® á⮫쪮 à § ¬ë ¨ ¡ã¤¥¬ ¢ë§ë¢ âìáï |
1619 | ret ;¯®ª ¢ á⥪¥ åà ¨âìáï ª®«-¢® ¢ë§®¢®¢ â® á⮫쪮 à § ¬ë ¨ ¡ã¤¥¬ ¢ë§ë¢ âìáï |
Line 1207... | Line 1620... | ||
1207 | 1620 | ||
1208 | 1621 |