This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

CCS/TMS320F28377D: Debugging Bootrom along with Application

Part Number: TMS320F28377D
Other Parts Discussed in Thread: CONTROLSUITE, C2000WARE

Tool/software: Code Composer Studio

Hello everyone,

 

I want to update my firmware using the internal Booloader through SCI and the serial_flash_programmer.exe application but it fails. It looks like it is not capable of stablishing communication with the Bootrom bootloader in order to send the Kernel.

My first suspicion was a hardware problem so I decided to test it by debugging the rom bootloader in CCS. This way I could see that the hardware is working properly  so serial_flash_programmer.exe can successfully send the kernel to the device.

Now, I would like to debug Bootrom along with my application to try to figure out what the problem could be? Could anybody tell me how to do it?

 

Many thanks in advance,

Andreu

  • Andreu

    I'm not exactly clear on what you're trying to debug. The flash programmer won't baud lock with the ROM SCI loader?
    If so, test using basic terminal first to confirm your connection to the device.

    Serial Flash Programmer Guide: http://www.ti.com/lit/sprabv4

    Best regards
    Chris
  • Chris,

    I developped my own application code for CPU1 in TMS320F28377D and then:

    1) Using CCS and XD200 I loaded the program into the device in order to see if the bootloader process worked.

    2) I set the EMU_BOOTCTRL register to 0x0A09FEA5, according to my hardware settings, where: BMSP1 = GPIO9, BMSP0 = GPIO8, TXD = GPIO84, RXD = GPIO85. GPIO9 was set to 0 and GPIO8 to 1 so the boot mode was SCI Boot 0.

    3) I run the code but the device did not go into boot mode, but it just run my application. It did not matter about EMU_BOOTCTRL register settings.

    I suspected that, maybe, my hardware had a problem so, as ROM source code for F2837xD is available in controlSuite and C2000Ware, I decided to trace the boot code:

    1) Using CCS and XD200 I loaded the symbols using the provided ROM COFF to trace the boot sequence to see if the hardware was correct.

    2) I set the EMU_BOOTCTRL register to 0x0A09FEA5, according to my hardware settings, where: BMSP1 = GPIO9, BMSP0 = GPIO8, TXD = GPIO84, RXD = GPIO85. GPIO9 was set to 0 and GPIO8 to 1 so the boot mode was SCI Boot 0.

    3) I traced the code and the device went to boot mode as expected and I managed to download and run the kernel by using "serial_flash_programmer.exe" application.

    To me, that meant that my hardware and EMU_BOOTCTRL settings were right so now I suspect my own source code or compiler/linker settings.

    One way I see to check it, is to trace my application from the boot starting point but I do not know how to do it. It is possible?

    Best regards,

    Andreu

  • Andreu

    Glad that you made use of the ROM symbols! After loading your application via debugger, you should reset via CCS (will reset to start of boot code) so that it runs through boot (can step through with symbols). It will then get stuck in the SCI bootloader with your current settings.

    Best regards
    Chris
  • Chris,

    Many thanks for your reply.

    I have another question. I am trying to update CPU1 and CPU2 with serial_flash_programmer while I am working in CCS andt XDS200 connected. Apart from setting the EMU_BOOTCTRL register in CPU1? Is it necessary to do anything concerning to CPU2 EMU_BOOTCTRL? If I type the command line command:

    serial_flash_programmer.exe  -v -d f2837xD -k F2837xD_sci_flash_kernels_cpu01.txt -a blinky_dc_cpu01.txt -m F2837xD_sci_flash_kernels_cpu02.txt -n blinky_dc_cpu02.txt -p COM17 -b 19200

    Is there any kind of flow chart that shows the action sequence to follow, both in the command line and in CCS to achieve a right updating process?

    Best Regards,

    Andreu

  • Andreu

    No, you shouldn't have to do anything for CPU2. CPU2 will boot to SCI bootloader when commanded by the CPU1 SCI flash kernel using "Run CPU1 Boot CPU2" command.

    Regarding Serial Flash programmer flow, the only sequence details are in the user guide. If you are looking for general boot flow details, refer to the technical reference manual for F28377D.

    Best regards
    Chris
  • Hello Chris,

    Thanks for your reply.

    I have tried to program CPU1 with "serial_flash_programmer.exe" but, most times, it gets stuck after releasing the "Attempting autobaud to send function message..." message:

    Then i I suspend CPU1 execution in CCS I can see it is executing the following code, looping from address 0x00cdcb to 0x00cdc7::

    Can you give me a hint on what the problem could be?

    Best regards,

    Andreu

  • Andreu

    It looks to be having trouble autobaud locking with the kernel application. Verify that the SCI flash kernel project is build for the correct SCI GPIOs that you are using. See the F2838xD_sci_flash_kernels_cpu01.c file.
    You can load symbols for that kernel project to get a better view about where it is getting stuck.

    Best regards
    Chris
  • Chris,

    I have found where the kernel in CPU1 gets stuck at: Line 385 in module Shared_Boot.c, you can see the disassembly on the right. Anyway, there is a previous error at function Assign_SCIA_IO_CPU2 of the same module: Attempted to read past the end of memory at 0xFFFFFFFF...

    I cannot understand why it is executing function Assign_SCIA_IO_CPU2 when it has not even loaded the CPU1 code in CPU1 Flash yet. I mean, shouldn't it program CPU1 flash before assigning SCIA to CPU2?

    What do you think it is happening?

    Best regards,

    Andreu

  • Andreu

    There looks to be a misalignment with the symbols and the code. I tracked down the disassembly and you're actually stuck in the SCIA_AutobaudLock function in SCI_GetFunction.c. Ignore the CPU2 stuff, since it is inaccurate. Those are only run once you give the kernel the command to boot CPU2 to load CPU2's kernel, etc.

    I'm not sure which HEX files you are using, but I suggest, rebuilding the HEX using the SCI kernel project in C2000Ware under device_support\f2837xd\examples\dual\F2837xD_sci_flash_kernels (Make sure to confirm the kernel is setup to use your SCI GPIOs). Make sure to not open up the HEX files since windows text editors will add junk into it.

    Since the issue is autobaud lock, it is either a GPIO issue or a timing issue.

    Best regards
    Chris
  • Hi Chris,

    Many thanks for your help.

    So far, I have managed to program CPU1. Then, in serial_flash_programmer menu, I select option 13 - Run CPU1 and Boot CPU2 and load the kernel in CPU2...

    ...but it gets stuck after releasing the "Attempting autobaud to send function message..." message. If I suspend CPU2 execution I can see it is stuck in Illegal Instruction Itrap in module c2core_bootrom_interrupts.c:

    As you can see, it is stuck in the infinite loop while(1). The address where this issue has been triggered is iTrap_addr = 0x82. If I try to see the dissassembly in address 0x82 I can see Fapi_setupEepromSectorEnable() (although I cannot assure you the symbols are right):

    What do you think the problem is? Could it be in CPU2 kernel?

    Many thanks in advance,

    Andreu

  • Andreu

    Alright, good that is progress.
    The symbols look right, but the data isn't right and that is why it is getting an itrap. I'm not sure what happened with the load to RAM. Make sure you are using the latest files and do a full device reset before trying again. Might want to load up the CPU2 kernel via CCS and see what you should expect to be loaded.

    Best regards
    Chris
  • Chris,

    I have got additional information about this issue. I have modified CPU2 kernel in C2000Ware: just to test, I have added an infinite loop while(1) at the beginning of main:

    main(void)

    {

    while(1);

    .

    .

    .

    I have loaded this kernel in CPU2 through serial_flash_programmer application and I can see that CPU2 execution is stuck at this while(1), and the Illegal Intruction Itrap is not triggered.

    That makes me think that address 0x00000082, I told you about in the previous message cannot be Flash but RAM, so maybe the symbols are wrongly loaded.

    I hope this piece of information can give you some clues.

    Regards,

    Andreu

  • Chris,

    I have been testing more and I have seen that the Illegal Intruction Itrap is triggered when excuting expression:

    oReturnCheck = Fapi_setActiveFlashBank(Fapi_FlashBank0);

    in function Init_Flash_Sectors (CPU2 Kernel):

    A have look for this kind of issue in the C2000 Forum and I have found some problems related to Fapi_setActiveFlashBank function:

    https://e2e.ti.com/support/microcontrollers/c2000/f/171/t/572428?TMS320F28377D-Flash-API-hangs-on-Flash-Fapi-setActiveFlashBank-execution

    https://e2e.ti.com/support/microcontrollers/c2000/f/171/t/651633?CCS-TMS320F28377D-Fapi-setActiveFlashBank-execution-crashes

    Why is a NMI (due to double bit errors) occurring when Fapi_setActiveFlashBank() is called on F2837xD CPU2? at:

    http://processors.wiki.ti.com/index.php/C2000_Flash_FAQ  

    Why does application end up in illegal ISR when using Flash API? at http://processors.wiki.ti.com/index.php/Flash_FAQ

    But I could not see what my problem is.

    As I have read that some early devices had some problems related to ECC, I must tell you that I am testing this on a F2837x controlCARD R1.1 where the DCU device is a TMX320F28377D.

    Could you help me with this?

    Best Regards,

    Andreu

  • Andreu

    Even with ECC disabled, it runs into an issue within Fap_setActiveFlashBank?
    But overall, your configurations look all correct so you shouldn't having any issue. I can run this on F28379D R.13 controlCARD without issue. Your controlCARD is quite old at this point, I wouldn't be surprised if that is the source of this. If you have another controlCARD or can get a newer one, that would be a good test.

    Best regards
    Chris
  • Hello

    I haven’t heard from you for 2 weeks, so I’m assuming you were able to resolve your issue. If this isn’t the case, please reject this resolution and reply to this thread. If this thread locks, please click the "Ask a related question" button and in the new thread describe the current status of your issue and any additional details you may have to assist us in helping to solve your issues.

    Best regards
    Chris
  • Chris,

    I am waiting to receive a F28379D controlCARD I have bought so I can test the issue there. I will tell you when I test it.

    Best regards,

    Andreu
  • Andreu

    Understood, thanks for the update. Look forward to hearing your test results.

    Best regards
    Chris
  • Hello Chris,

    I have just tested the issue in a F2837x controlcard R1.3 and it works with similar results: Illegal Intruction Itrap is triggered. This time I can see that the previous instruction before the Itrap is the one highlighted in green below:

    Have you got any idea about what the problem can be?

    Best  Regards,

    Andreu

  • Hi Andreu,

    I believe this may have something to do with the flash API execution.

    Can you confirm that CPU1 has reliquish the flash pump and CPU2 has seized it?
    CPU1:
    ReleaseFlashPump();
    CPU2:
    SeizeFlashPump();

    Have you gotten CPU2 kernel working when loading via CCS? Is this just an issue when doing this from standalone?

    Can you been able to initialize the flash API from CPU2 in any way?

    sal
  • Hi Sal,

    Many thanks for your answer. Here you have mines:

    1) Can you confirm that CPU1 has reliquish the flash pump and CPU2 has seized it? Yes, I managed to trace it.

    2) Have you gotten CPU2 kernel working when loading via CCS? Is this just an issue when doing this from standalone?  I could not get it working because execution of address 0xF5E5 triggered c2brom_itrap_isr.

    Anyway, if I a watch Disassembly in RAM memory I can see differences between the kernel loaded by CCS and the one loaded through serial_flash_programmer application. For instance, when using CCS, address 0x0082 looks like this:

     But if load the kernel through the serial_flash_programmer application, it looks like this:

    So, there is an ITRAP instruction in address 0x0082 and that must be the reason why CPU2 execution always jumps to c2brom_itrap_isr.

    I cannot understand it. What can be wrong? I have attached my F2837xD_sci_flash_kernels_cpu02.txt file so you can check whether there is a problem with it or not....

    Many thanks in advance,

    Andreu 

    
    AA 08 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 02 00 
    00 00 00 00 40 00 E5 F5 
    13 00 00 00 35 01 F2 FF 2C FA 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
    2A 00 00 00 00 FA 00 00 08 00 00 20 08 00 00 40 08 00 00 60 08 00 00 80 
    08 00 00 00 09 00 00 80 09 00 00 00 0A 00 00 80 0A 00 00 00 0B 00 00 80 
    0B 00 00 A0 0B 00 00 C0 0B 00 00 E0 0B 00 00 10 00 10 00 10 00 10 00 40 
    00 40 00 40 00 40 00 40 00 40 00 10 00 10 00 10 00 10 
    B5 00 00 00 80 00 00 9A 06 00 1A 02 1F 76 E9 03 02 07 A9 8A 40 8F FF FF 
    C4 A0 00 8F 44 01 A9 A8 02 07 A9 8A 00 BE C4 CC F8 FF 05 50 C4 96 00 8F 
    52 01 A9 A8 02 07 A9 8A C4 C2 00 8F 44 01 A9 A8 02 07 A9 8A C4 CC F8 FF 
    02 50 C4 96 00 8F 44 01 A9 A8 02 07 A9 8A C4 CC F8 FF 05 50 C4 96 00 8F 
    60 01 A9 A8 02 07 A9 8A C4 C2 00 8F 44 01 A9 A8 02 07 A9 8A C4 CC F8 FF 
    02 50 C4 96 00 8F 44 01 A9 A8 02 07 A9 8A C4 CC F8 FF 05 50 C4 96 00 8F 
    62 01 A9 A8 02 07 A9 8A C4 C2 00 8F 44 01 A9 A8 02 07 A9 8A C4 CC F8 FF 
    02 50 C4 96 00 9A 06 00 1A 02 1F 76 E9 03 02 07 A9 8A 40 8F FF FF C4 A0 
    00 8F 44 01 A9 A8 02 07 A9 8A 00 BE C4 CC F8 FF 05 50 C4 96 00 8F 52 01 
    A9 A8 02 07 A9 8A C4 C2 00 8F 44 01 A9 A8 02 07 A9 8A C4 CC F8 FF 02 50 
    C4 96 00 9A 06 00 22 76 1F 76 E0 17 1E CC 00 FF 14 50 1E 96 24 1A 01 00 
    20 1A 03 00 1F 76 E6 17 00 18 FD FF 00 18 FE FF 1F 76 E0 17 00 CC FF F0 
    A9 1A 00 03 00 96 1F 76 E6 17 00 1A 02 00 00 1A 01 00 1F 76 EC 17 00 CC 
    F0 FF 0A 50 00 96 1A 76 07 F6 00 77 69 FF 06 00 22 76 1F 76 E0 17 1E CC 
    00 FF 14 50 1E 96 20 18 FC FF 24 18 FE FF 1A 76 69 FF 06 00 02 FE 41 96 
    25 76 69 FF 82 FE 06 00 
    FD 0F 00 00 00 E0 1B 76 F0 FF 00 E2 BD 00 30 E6 00 06 42 29 16 56 25 76 
    00 6F 1B 76 F0 FF 00 E2 BD 00 30 E6 00 06 42 29 16 56 25 76 00 6F 1B 76 
    F0 FF 00 E2 BD 00 30 E6 00 06 42 29 16 56 25 76 00 6F 1B 76 F0 FF 00 E2 
    BD 00 30 E6 00 06 42 29 16 56 25 76 00 6F 1B 76 F0 FF 00 E2 BD 00 30 E6 
    00 06 42 29 16 56 25 76 00 6F 1B 76 F0 FF 00 E2 BD 00 30 E6 00 06 42 29 
    16 56 25 76 00 6F 1B 76 F0 FF 00 E2 BD 00 30 E6 00 06 42 29 16 56 25 76 
    00 6F 1B 76 F0 FF 00 E2 BD 00 30 E6 00 06 42 29 16 56 25 76 00 6F 1B 76 
    F0 FF 00 E2 BD 00 30 E6 00 06 42 29 16 56 25 76 00 6F 1B 76 F0 FF 00 E2 
    BD 00 30 E6 00 06 42 29 16 56 25 76 00 6F 1B 76 F0 FF 00 E2 BD 00 30 E6 
    00 06 42 29 16 56 25 76 00 6F 1B 76 F0 FF 00 E2 BD 00 30 E6 00 06 42 29 
    16 56 25 76 00 6F 1B 76 F0 FF 00 E2 BD 00 30 E6 00 06 42 29 16 56 25 76 
    00 6F 1B 76 F0 FF 00 E2 BD 00 30 E6 00 06 42 29 16 56 25 76 00 6F 1B 76 
    F0 FF 00 E2 BD 00 30 E6 00 06 42 29 16 56 25 76 00 6F 1B 76 F0 FF 00 E2 
    BD 00 30 E6 00 06 42 29 16 56 25 76 00 6F 1B 76 F0 FF 00 E2 BD 00 30 E6 
    00 06 42 29 16 56 25 76 00 6F 1B 76 F0 FF 00 E2 BD 00 30 E6 00 06 42 29 
    16 56 25 76 00 6F 1B 76 F0 FF 00 E2 BD 00 30 E6 00 06 42 29 16 56 25 76 
    00 6F 1B 76 F0 FF 00 E2 BD 00 30 E6 00 06 42 29 16 56 25 76 00 6F 1B 76 
    F0 FF 00 E2 BD 00 30 E6 00 06 42 29 16 56 25 76 00 6F 1B 76 F0 FF 00 E2 
    BD 00 30 E6 00 06 42 29 16 56 25 76 00 6F 1B 76 F0 FF 00 E2 BD 00 30 E6 
    00 06 42 29 16 56 25 76 00 6F 1B 76 F0 FF 00 E2 BD 00 30 E6 00 06 42 29 
    16 56 25 76 00 6F 1B 76 F0 FF 00 E2 BD 00 30 E6 00 06 42 29 16 56 25 76 
    00 6F 1B 76 F0 FF 00 E2 BD 00 30 E6 00 06 42 29 16 56 25 76 00 6F 1B 76 
    F0 FF 00 E2 BD 00 30 E6 00 06 42 29 16 56 25 76 00 6F 1B 76 F0 FF 00 E2 
    BD 00 30 E6 00 06 42 29 16 56 25 76 00 6F 1B 76 F0 FF 00 E2 BD 00 30 E6 
    00 06 42 29 16 56 25 76 00 6F 1B 76 F0 FF 00 E2 BD 00 30 E6 00 06 42 29 
    16 56 25 76 00 6F 1B 76 F0 FF 00 E2 BD 00 30 E6 00 06 42 29 16 56 25 76 
    00 6F 1B 76 F0 FF 00 E2 BD 00 30 E6 00 06 42 29 16 56 25 76 00 6F 1B 76 
    F0 FF 00 E2 BD 00 30 E6 00 06 42 29 16 56 25 76 00 6F 1B 76 F0 FF 00 E2 
    BD 00 30 E6 00 06 42 29 16 56 25 76 00 6F 1B 76 F0 FF 00 E2 BD 00 30 E6 
    00 06 42 29 16 56 25 76 00 6F 1B 76 F0 FF 00 E2 BD 00 30 E6 00 06 42 29 
    16 56 25 76 00 6F 1B 76 F0 FF 00 E2 BD 00 30 E6 00 06 42 29 16 56 25 76 
    00 6F 1B 76 F0 FF 00 E2 BD 00 30 E6 00 06 42 29 16 56 25 76 00 6F 1B 76 
    F0 FF 00 E2 BD 00 30 E6 00 06 42 29 16 56 25 76 00 6F 1B 76 F0 FF 00 E2 
    BD 00 30 E6 00 06 42 29 16 56 25 76 00 6F 1B 76 F0 FF 00 E2 BD 00 30 E6 
    00 06 42 29 16 56 25 76 00 6F 1B 76 F0 FF 00 E2 BD 00 30 E6 00 06 42 29 
    16 56 25 76 00 6F 1B 76 F0 FF 00 E2 BD 00 30 E6 00 06 42 29 16 56 25 76 
    00 6F 1B 76 F0 FF 00 E2 BD 00 30 E6 00 06 42 29 16 56 25 76 00 6F 1B 76 
    F0 FF 00 E2 BD 00 30 E6 00 06 42 29 16 56 25 76 00 6F 1B 76 F0 FF 00 E2 
    BD 00 30 E6 00 06 42 29 16 56 25 76 00 6F 1B 76 F0 FF 00 E2 BD 00 30 E6 
    00 06 42 29 16 56 25 76 00 6F 1B 76 F0 FF 00 E2 BD 00 30 E6 00 06 42 29 
    16 56 25 76 00 6F 1B 76 F0 FF 00 E2 BD 00 30 E6 00 06 42 29 16 56 25 76 
    00 6F 1B 76 F0 FF 00 E2 BD 00 30 E6 00 06 42 29 16 56 25 76 00 6F 1B 76 
    F0 FF 00 E2 BD 00 30 E6 00 06 42 29 16 56 25 76 00 6F 1B 76 F0 FF 00 E2 
    BD 00 30 E6 00 06 42 29 16 56 25 76 00 6F 1B 76 F0 FF 00 E2 BD 00 30 E6 
    00 06 42 29 16 56 25 76 00 6F 1B 76 F0 FF 00 E2 BD 00 30 E6 00 06 42 29 
    16 56 25 76 00 6F 1B 76 F0 FF 00 E2 BD 00 30 E6 00 06 42 29 16 56 25 76 
    00 6F 1B 76 F0 FF 00 E2 BD 00 30 E6 00 06 42 29 16 56 25 76 00 6F 1B 76 
    F0 FF 00 E2 BD 00 30 E6 00 06 42 29 16 56 25 76 00 6F 1B 76 F0 FF 00 E2 
    BD 00 30 E6 00 06 42 29 16 56 25 76 00 6F 1B 76 F0 FF 00 E2 BD 00 30 E6 
    00 06 42 29 16 56 25 76 00 6F 1B 76 F0 FF 00 E2 BD 00 30 E6 00 06 42 29 
    16 56 25 76 00 6F 1B 76 F0 FF 00 E2 BD 00 30 E6 00 06 42 29 16 56 25 76 
    00 6F 1B 76 F0 FF 00 E2 BD 00 30 E6 00 06 42 29 16 56 25 76 00 6F 1B 76 
    F0 FF 00 E2 BD 00 30 E6 00 06 42 29 16 56 25 76 00 6F 1B 76 F0 FF 00 E2 
    BD 00 30 E6 00 06 42 29 16 56 25 76 00 6F 1B 76 F0 FF 00 E2 BD 00 30 E6 
    00 06 42 29 16 56 25 76 00 6F 1B 76 F0 FF 00 E2 BD 00 30 E6 00 06 42 29 
    16 56 25 76 00 6F 1B 76 F0 FF 00 E2 BD 00 30 E6 00 06 42 29 16 56 25 76 
    00 6F 1B 76 F0 FF 00 E2 BD 00 30 E6 00 06 42 29 16 56 25 76 00 6F 1B 76 
    F0 FF 00 E2 BD 00 30 E6 00 06 42 29 16 56 25 76 00 6F 1B 76 F0 FF 00 E2 
    BD 00 30 E6 00 06 42 29 16 56 25 76 00 6F 1B 76 F0 FF 00 E2 BD 00 30 E6 
    00 06 42 29 16 56 25 76 00 6F 1B 76 F0 FF 00 E2 BD 00 30 E6 00 06 42 29 
    16 56 25 76 00 6F 1B 76 F0 FF 00 E2 BD 00 30 E6 00 06 42 29 16 56 25 76 
    00 6F 1B 76 F0 FF 00 E2 BD 00 30 E6 00 06 42 29 16 56 25 76 00 6F 1B 76 
    F0 FF 00 E2 BD 00 30 E6 00 06 42 29 16 56 25 76 00 6F 1B 76 F0 FF 00 E2 
    BD 00 30 E6 00 06 42 29 16 56 25 76 00 6F 1B 76 F0 FF 00 E2 BD 00 30 E6 
    00 06 42 29 16 56 25 76 00 6F 1B 76 F0 FF 00 E2 BD 00 30 E6 00 06 42 29 
    16 56 25 76 00 6F 1B 76 F0 FF 00 E2 BD 00 30 E6 00 06 42 29 16 56 25 76 
    00 6F 1B 76 F0 FF 00 E2 BD 00 30 E6 00 06 42 29 16 56 25 76 00 6F 1B 76 
    F0 FF 00 E2 BD 00 30 E6 00 06 42 29 16 56 25 76 00 6F 1B 76 F0 FF 00 E2 
    BD 00 30 E6 00 06 42 29 16 56 25 76 00 6F 1B 76 F0 FF 00 E2 BD 00 30 E6 
    00 06 42 29 16 56 25 76 00 6F 1B 76 F0 FF 00 E2 BD 00 30 E6 00 06 42 29 
    16 56 25 76 00 6F 1B 76 F0 FF 00 E2 BD 00 30 E6 00 06 42 29 16 56 25 76 
    00 6F 1B 76 F0 FF 00 E2 BD 00 30 E6 00 06 42 29 16 56 25 76 00 6F 1B 76 
    F0 FF 00 E2 BD 00 30 E6 00 06 42 29 16 56 25 76 00 6F 1B 76 F0 FF 00 E2 
    BD 00 30 E6 00 06 42 29 16 56 25 76 00 6F 1B 76 F0 FF 00 E2 BD 00 30 E6 
    00 06 42 29 16 56 25 76 00 6F 1B 76 F0 FF 00 E2 BD 00 30 E6 00 06 42 29 
    16 56 25 76 00 6F 1B 76 F0 FF 00 E2 BD 00 30 E6 00 06 42 29 16 56 25 76 
    00 6F 1B 76 F0 FF 00 E2 BD 00 30 E6 00 06 42 29 16 56 25 76 00 6F 1B 76 
    F0 FF 00 E2 BD 00 30 E6 00 06 42 29 16 56 25 76 00 6F 1B 76 F0 FF 00 E2 
    BD 00 30 E6 00 06 42 29 16 56 25 76 00 6F 1B 76 F0 FF 00 E2 BD 00 30 E6 
    00 06 42 29 16 56 25 76 00 6F 1B 76 F0 FF 00 E2 BD 00 30 E6 00 06 42 29 
    16 56 25 76 00 6F 1B 76 F0 FF 00 E2 BD 00 30 E6 00 06 42 29 16 56 25 76 
    00 6F 1B 76 F0 FF 00 E2 BD 00 30 E6 00 06 42 29 16 56 25 76 00 6F 1B 76 
    F0 FF 00 E2 BD 00 30 E6 00 06 42 29 16 56 25 76 00 6F 1B 76 F0 FF 00 E2 
    BD 00 30 E6 00 06 42 29 16 56 25 76 00 6F 1B 76 F0 FF 00 E2 BD 00 30 E6 
    00 06 42 29 16 56 25 76 00 6F 1B 76 F0 FF 00 E2 BD 00 30 E6 00 06 42 29 
    16 56 25 76 00 6F 1B 76 F0 FF 00 E2 BD 00 30 E6 00 06 42 29 16 56 25 76 
    00 6F 1B 76 F0 FF 00 E2 BD 00 30 E6 00 06 42 29 16 56 25 76 00 6F 1B 76 
    F0 FF 00 E2 BD 00 30 E6 00 06 42 29 16 56 25 76 00 6F 1B 76 F0 FF 00 E2 
    BD 00 30 E6 00 06 42 29 16 56 25 76 00 6F 1B 76 F0 FF 00 E2 BD 00 30 E6 
    00 06 42 29 16 56 25 76 00 6F 1B 76 F0 FF 00 E2 BD 00 30 E6 00 06 42 29 
    16 56 25 76 00 6F 1B 76 F0 FF 00 E2 BD 00 30 E6 00 06 42 29 16 56 25 76 
    00 6F 1B 76 F0 FF 00 E2 BD 00 30 E6 00 06 42 29 16 56 25 76 00 6F 1B 76 
    F0 FF 00 E2 BD 00 30 E6 00 06 42 29 16 56 25 76 00 6F 1B 76 F0 FF 00 E2 
    BD 00 30 E6 00 06 42 29 16 56 25 76 00 6F 1B 76 F0 FF 00 E2 BD 00 30 E6 
    00 06 42 29 16 56 25 76 00 6F 1B 76 F0 FF 00 E2 BD 00 30 E6 00 06 42 29 
    16 56 25 76 00 6F 1B 76 F0 FF 00 E2 BD 00 30 E6 00 06 42 29 16 56 25 76 
    00 6F 1B 76 F0 FF 00 E2 BD 00 30 E6 00 06 42 29 16 56 25 76 00 6F 1B 76 
    F0 FF 00 E2 BD 00 30 E6 00 06 42 29 16 56 25 76 00 6F 1B 76 F0 FF 00 E2 
    BD 00 30 E6 00 06 42 29 16 56 25 76 00 6F 1B 76 F0 FF 00 E2 BD 00 30 E6 
    00 06 42 29 16 56 25 76 00 6F 1B 76 F0 FF 00 E2 BD 00 30 E6 00 06 42 29 
    16 56 25 76 00 6F 1B 76 F0 FF 00 E2 BD 00 30 E6 00 06 42 29 16 56 25 76 
    00 6F 1B 76 F0 FF 00 E2 BD 00 30 E6 00 06 42 29 16 56 25 76 00 6F 1B 76 
    F0 FF 00 E2 BD 00 30 E6 00 06 42 29 16 56 25 76 00 6F 1B 76 F0 FF 00 E2 
    BD 00 30 E6 00 06 42 29 16 56 25 76 00 6F 1B 76 F0 FF 00 E2 BD 00 30 E6 
    00 06 42 29 16 56 25 76 00 6F 1B 76 F0 FF 00 E2 BD 00 30 E6 00 06 42 29 
    16 56 25 76 00 6F 1B 76 F0 FF 00 E2 BD 00 30 E6 00 06 42 29 16 56 25 76 
    00 6F 1B 76 F0 FF 00 E2 BD 00 30 E6 00 06 42 29 16 56 25 76 00 6F 1B 76 
    F0 FF 00 E2 BD 00 30 E6 00 06 42 29 16 56 25 76 00 6F 1B 76 F0 FF 00 E2 
    BD 00 30 E6 00 06 42 29 16 56 25 76 00 6F 1B 76 F0 FF 00 E2 BD 00 30 E6 
    00 06 42 29 16 56 25 76 00 6F 1B 76 F0 FF 00 E2 BD 00 30 E6 00 06 42 29 
    16 56 25 76 00 6F 1B 76 F0 FF 00 E2 BD 00 30 E6 00 06 42 29 16 56 25 76 
    00 6F 1B 76 F0 FF 00 E2 BD 00 30 E6 00 06 42 29 16 56 25 76 00 6F 1B 76 
    F0 FF 00 E2 BD 00 30 E6 00 06 42 29 16 56 25 76 00 6F 1B 76 F0 FF 00 E2 
    BD 00 30 E6 00 06 42 29 16 56 25 76 00 6F 1B 76 F0 FF 00 E2 BD 00 30 E6 
    00 06 42 29 16 56 25 76 00 6F 1B 76 F0 FF 00 E2 BD 00 30 E6 00 06 42 29 
    16 56 25 76 00 6F 1B 76 F0 FF 00 E2 BD 00 30 E6 00 06 42 29 16 56 25 76 
    00 6F 1B 76 F0 FF 00 E2 BD 00 30 E6 00 06 42 29 16 56 80 E2 BE 00 F1 FF 
    17 76 02 76 1B 76 F0 FF 00 E2 BD 00 30 E6 00 06 42 29 16 56 25 76 00 6F 
    BD B2 BD AA AD 5A 86 DA AD 08 A0 00 19 D0 92 2B 18 D0 92 2B 13 D0 92 2B 
    A9 28 00 10 1F 76 E8 03 3C 54 06 61 13 D0 92 92 13 D0 01 9C 92 96 19 D0 
    92 2B 19 D0 92 92 0E 52 0F 67 00 8F 2C FA 19 D0 92 58 94 2B 19 D0 92 92 
    19 D0 01 9C 92 96 19 D0 92 92 0E 52 F5 68 40 76 B6 EE 1F 76 E8 03 2A C5 
    67 3E 48 96 22 76 EF FF BB 01 69 FF 40 76 0E E9 46 1E 19 D0 92 2B EF FF 
    A9 01 80 52 39 67 18 D0 92 2B 1A 6F 1F 76 E8 03 2A C5 67 3E 14 D0 92 96 
    AD 5C A4 08 78 FF 18 D0 92 59 A4 5C 14 D0 92 92 9C 96 19 D0 92 92 19 D0 
    01 9C 92 96 18 D0 92 92 18 D0 01 9C 92 96 48 92 18 D0 92 54 E4 66 18 D0 
    92 96 18 D0 92 92 80 52 73 67 AD 5C A4 08 78 FF 18 D0 92 58 A4 5C 94 28 
    FF FF 18 D0 92 92 18 D0 01 9C 92 96 18 D0 92 92 80 52 F0 68 61 6F 19 D0 
    92 9E 80 52 3A 67 18 D0 92 2B 15 6F 1F 76 E8 03 2A C5 67 3E 14 D0 92 96 
    AD 5C A4 08 78 FF 18 D0 92 59 A4 5C 14 D0 92 92 9C 96 18 D0 92 92 18 D0 
    01 9C 92 96 48 92 19 D0 92 9E 18 D0 92 54 E7 66 18 D0 92 92 19 D0 92 94 
    19 D0 92 96 18 D0 92 92 80 52 36 67 AD 5C A4 08 78 FF 18 D0 92 58 A4 5C 
    94 28 FF FF 18 D0 92 92 18 D0 01 9C 92 96 18 D0 92 92 80 52 F0 68 24 6F 
    18 D0 92 2B 18 D0 92 92 80 52 1E 67 1F 76 E8 03 2A C5 67 3E 14 D0 92 96 
    AD 5C A4 08 78 FF 18 D0 92 59 A4 5C 14 D0 92 92 9C 96 19 D0 92 92 19 D0 
    01 9C 92 96 18 D0 92 92 18 D0 01 9C 92 96 18 D0 92 92 80 52 E4 68 09 D0 
    92 2B 09 D0 92 92 20 52 E3 FF 02 01 AD 5C A4 08 78 FF 09 D0 A4 80 03 56 
    92 02 A9 88 01 3B A7 06 A6 81 A7 1E 1A D0 C7 92 92 96 AD 5C A4 08 78 FF 
    09 D0 A4 80 03 56 92 02 A9 5C 01 DC A7 06 A4 81 A7 1E 1B D0 C7 92 92 96 
    AD 5C A4 08 78 FF 09 D0 A4 80 03 56 92 02 A9 5C 02 DC A7 06 A4 81 A7 1E 
    1C D0 C7 92 92 96 AD 5C A4 08 78 FF 09 D0 A4 80 03 56 92 02 A9 5C 03 DC 
    A7 06 A4 81 A7 1E 1D D0 C7 92 92 96 1A D0 92 88 00 8F FF FF A9 A8 A6 0F 
    0E 60 1B D0 92 88 A6 0F 0A 60 1C D0 92 88 A6 0F 06 60 1D D0 92 88 A6 0F 
    E1 FF A5 00 46 06 40 76 7D E7 16 D0 92 1E A9 28 EF BE A8 28 AD DE 16 D0 
    92 0F 2C 61 16 D0 92 06 40 76 98 E8 15 D0 92 96 16 D0 06 9A 92 8A 40 76 
    07 F6 12 D0 92 96 AD 5D A5 08 64 FF 15 D0 92 0E 16 D0 A5 5D 92 8A 40 76 
    88 F4 12 D0 92 96 12 D0 92 92 10 61 13 D0 92 92 08 60 1F 76 E8 03 3C 28 
    00 20 0A D0 92 06 3E 1E 13 D0 92 92 13 D0 01 9C 92 96 AD 5D 00 02 42 1E 
    43 2B A5 08 74 FF 04 9A 00 9B 46 8A A5 5D 40 76 00 F0 12 D0 92 96 40 76 
    96 F6 01 52 FD 61 12 D0 92 92 10 61 13 D0 92 92 08 60 1F 76 E8 03 3C 28 
    00 40 0A D0 92 06 3E 1E 13 D0 92 92 13 D0 01 9C 92 96 18 D0 92 2B 18 D0 
    92 92 04 52 43 67 AD 5C A4 08 74 FF 18 D0 92 58 A4 5C 01 D8 94 0E F2 1E 
    F2 06 3F FF F2 1E AD 5C A4 08 74 FF 18 D0 92 58 A4 5C F2 06 94 AF F2 1E 
    AD 5C AD 5D A4 08 64 FF A5 08 60 FF 18 D0 A4 0E A5 5D 42 1E 92 0E 46 07 
    A9 8A 01 02 40 76 6F F6 12 D0 92 96 12 D0 92 92 10 61 13 D0 92 92 08 60 
    1F 76 E8 03 3C 28 00 30 0A D0 92 06 3E 1E 13 D0 92 92 13 D0 01 9C 92 96 
    18 D0 92 92 18 D0 02 9C 92 96 18 D0 92 92 04 52 BF 68 04 02 46 07 46 1E 
    09 D0 92 92 09 D0 01 9C 92 96 09 D0 92 92 20 52 E4 FF 02 FF 40 76 B6 EE 
    19 D0 92 92 19 D0 92 96 48 92 19 D0 92 54 E6 FF 56 FE 1F 76 E8 03 2A C5 
    67 3E 48 96 00 52 E0 FF 46 FE 1A 76 AD 08 60 FF 69 FF BE 86 BE 8B 06 00 
    02 FE 42 1E 08 8F 00 00 A9 A8 42 0F 10 66 08 8F FF 1F A9 A8 42 0F 0B 68 
    1F 76 E8 03 2C 92 07 60 BF 56 2C 01 08 8F 00 00 EF FF 04 01 08 8F 00 20 
    A9 A8 42 0F 10 66 08 8F FF 3F A9 A8 42 0F 0B 68 1F 76 E8 03 2D 92 07 60 
    BF 56 2D 01 08 8F 00 20 EF FF F0 00 08 8F 00 40 A9 A8 42 0F 10 66 08 8F 
    FF 5F A9 A8 42 0F 0B 68 1F 76 E8 03 2E 92 07 60 BF 56 2E 01 08 8F 00 40 
    EF FF DC 00 08 8F 00 60 A9 A8 42 0F 10 66 08 8F FF 7F A9 A8 42 0F 0B 68 
    1F 76 E8 03 2F 92 07 60 BF 56 2F 01 08 8F 00 60 EF FF C8 00 08 8F 00 80 
    A9 A8 42 0F 10 66 08 8F FF FF A9 A8 42 0F 0B 68 1F 76 E8 03 30 92 07 60 
    BF 56 30 01 08 8F 00 80 EF FF B4 00 09 8F 00 00 A9 A8 42 0F 10 66 09 8F 
    FF 7F A9 A8 42 0F 0B 68 1F 76 E8 03 31 92 07 60 BF 56 31 01 09 8F 00 00 
    EF FF A0 00 09 8F 00 80 A9 A8 42 0F 10 66 09 8F FF FF A9 A8 42 0F 0B 68 
    1F 76 E8 03 32 92 07 60 BF 56 32 01 09 8F 00 80 EF FF 8C 00 0A 8F 00 00 
    A9 A8 42 0F 0F 66 0A 8F FF 7F A9 A8 42 0F 0A 68 1F 76 E8 03 33 92 06 60 
    BF 56 33 01 0A 8F 00 00 78 6F 0A 8F 00 80 A9 A8 42 0F 0F 66 0A 8F FF FF 
    A9 A8 42 0F 0A 68 1F 76 E8 03 34 92 06 60 BF 56 34 01 0A 8F 00 80 65 6F 
    0B 8F 00 00 A9 A8 42 0F 0F 66 0B 8F FF 7F A9 A8 42 0F 0A 68 1F 76 E8 03 
    35 92 06 60 BF 56 35 01 0B 8F 00 00 52 6F 0B 8F 00 80 A9 A8 42 0F 0F 66 
    0B 8F FF 9F A9 A8 42 0F 0A 68 1F 76 E8 03 36 92 06 60 BF 56 36 01 0B 8F 
    00 80 3F 6F 0B 8F 00 A0 A9 A8 42 0F 0F 66 0B 8F FF BF A9 A8 42 0F 0A 68 
    1F 76 E8 03 37 92 06 60 BF 56 37 01 0B 8F 00 A0 2C 6F 0B 8F 00 C0 A9 A8 
    42 0F 0F 66 0B 8F FF DF A9 A8 42 0F 0A 68 1F 76 E8 03 38 92 06 60 BF 56 
    38 01 0B 8F 00 C0 19 6F 0B 8F 00 E0 A9 A8 42 0F 0F 66 0B 8F FF FF A9 A8 
    42 0F 0A 68 1F 76 E8 03 39 92 06 60 BF 56 39 01 0B 8F 00 E0 06 6F A9 28 
    EF BE A8 28 AD DE A9 8A 82 FE A9 A8 06 00 02 FE 42 1E 08 8F 00 00 A9 A8 
    42 0F 04 60 A9 28 00 10 6B 6F 08 8F 00 20 A9 A8 42 0F 04 60 A9 28 00 10 
    63 6F 08 8F 00 40 A9 A8 42 0F 04 60 A9 28 00 10 5B 6F 08 8F 00 60 A9 A8 
    42 0F 04 60 A9 28 00 10 53 6F 08 8F 00 80 A9 A8 42 0F 04 60 A9 28 00 40 
    4B 6F 09 8F 00 00 A9 A8 42 0F 04 60 A9 28 00 40 43 6F 09 8F 00 80 A9 A8 
    42 0F 04 60 A9 28 00 40 3B 6F 0A 8F 00 00 A9 A8 42 0F 04 60 A9 28 00 40 
    33 6F 0A 8F 00 80 A9 A8 42 0F 04 60 A9 28 00 40 2B 6F 0B 8F 00 00 A9 A8 
    42 0F 04 60 A9 28 00 40 23 6F 0B 8F 00 80 A9 A8 42 0F 04 60 A9 28 00 10 
    1B 6F 0B 8F 00 A0 A9 A8 42 0F 04 60 A9 28 00 10 13 6F 0B 8F 00 C0 A9 A8 
    42 0F 04 60 A9 28 00 10 0B 6F 0B 8F 00 E0 A9 A8 42 0F 04 60 A9 28 00 10 
    03 6F A9 28 EF BE 82 FE 06 00 02 FE 1F 76 E8 03 2A C5 67 3E 01 29 A9 25 
    42 1E 1F 76 E8 03 2A C5 67 3E A9 0E 42 98 41 99 42 06 82 FE 06 00 02 FE 
    BF 56 41 01 41 92 08 52 09 66 1F 76 E8 03 2A C5 67 3E 41 0A 41 92 08 52 
    F9 69 82 FE 06 00 BD B2 BD AA AD 5A 86 DA 70 FE 45 96 01 29 0E D0 07 8F 
    A8 00 03 56 45 0B 01 56 A4 00 92 A8 F2 2B 08 D0 00 02 92 1E 08 D0 30 02 
    92 0F 1A 69 08 D0 0E D1 AD 5C 92 06 9A 83 E6 DC 08 D0 30 FF 01 56 A5 00 
    C5 C4 92 06 30 FF 01 56 A4 00 C4 C2 08 D0 08 D1 01 02 92 07 9A 1E 08 D0 
    30 02 92 0F E8 66 45 92 07 52 06 ED 1F 76 E9 03 09 92 FA 96 05 6F 1F 76 
    E9 03 08 92 FA 96 FA 92 01 9C 00 BE 03 56 A9 01 A9 80 42 C3 0A 0E 44 C2 
    40 76 2B F5 0C D0 92 1E 1F 76 E9 03 00 BE 03 56 0A 04 FA 93 01 9D A8 80 
    42 C3 A9 0E 44 C2 40 76 2B F5 0A D0 92 1E 26 D0 92 CC FF 0F 0C D0 A9 0E 
    92 0F 05 67 F2 28 F8 01 EF FF E8 01 16 02 AD 5C 42 1E E6 DC 10 02 40 76 
    8B F6 36 D0 92 0F 05 EC F2 28 F6 01 EF FF DA 01 1F 76 E9 03 02 8A D4 18 
    FD FF 02 8A 00 9A 01 90 02 DC C4 CD FE FF A8 CA C4 96 00 8F 44 01 02 06 
    01 56 A4 00 C4 CC F8 FF 05 50 C4 96 0A D0 92 06 2C D0 42 1E 92 0E 40 76 
    7E F6 1F 76 E9 03 02 8A 00 8D 20 01 94 96 0A D0 92 06 2E D0 42 1E 92 06 
    40 76 7E F6 1F 76 E9 03 02 8A 00 8D 22 01 94 1E 0A D0 92 06 23 D0 42 1E 
    92 92 FF 90 A9 0E 40 76 7E F6 1F 76 E9 03 00 8F 10 01 A6 1E 02 06 01 56 
    A4 00 A6 92 C4 93 A8 3C C4 97 0A D0 92 06 25 D0 42 1E 92 CC 00 FF C7 FF 
    A9 0E 40 76 7E F6 1F 76 E9 03 00 8F 14 01 A6 1E 02 06 01 56 A4 00 A6 92 
    C4 93 A9 39 C4 97 0A D0 92 06 27 D0 42 1E 92 CC 00 FF C7 FF A9 0E 40 76 
    7E F6 1F 76 E9 03 02 8A 00 8D 16 01 94 96 0A D0 92 06 24 D0 42 1E 92 CC 
    00 FF C7 FF A9 0E 40 76 7E F6 1F 76 E9 03 00 8F 1A 01 A6 1E 02 06 01 56 
    A4 00 A6 92 C4 93 A9 39 C4 97 21 D0 00 8F 08 01 02 06 01 56 A4 00 92 CC 
    00 FF C7 FF A9 88 C4 92 A6 38 C4 96 21 D0 00 8F 08 01 92 CC FF 00 A9 80 
    02 06 01 56 A4 00 A7 92 C4 93 A8 3C C4 97 20 D0 00 8F 0C 01 02 06 01 56 
    A4 00 92 CC 00 FF C7 FF A9 88 C4 92 A6 38 C4 96 20 D0 00 8F 0C 01 92 CC 
    FF 00 A9 80 02 06 01 56 A4 00 A7 92 C4 93 A8 3C C4 97 22 D0 00 8F 0E 01 
    92 CC FF 0F A9 80 02 06 01 56 A4 00 A7 92 A9 CC FF 0F C4 CD 00 F0 A8 CA 
    C4 96 22 D0 00 8F 0E 01 02 06 01 56 A4 00 92 CC 00 F0 CB FF A9 88 C4 CC 
    FF 0F A9 80 03 56 A6 0C A7 CA C4 96 26 D0 00 8F 0A 01 02 06 01 56 A4 00 
    92 CC 00 F0 CB FF A9 88 C4 CC FF 0F A9 80 03 56 A6 0C A7 CA C4 96 23 D0 
    00 8F 10 01 02 06 01 56 A4 00 92 CC 00 FF C7 FF A9 88 C4 92 A6 38 C4 96 
    25 D0 00 8F 12 01 92 CC FF 00 A9 80 02 06 01 56 A4 00 A7 92 C4 93 A8 3C 
    C4 97 2A D0 92 88 00 8F 34 01 02 06 01 56 A4 00 A6 CC FF 0F C4 CD 00 F0 
    A8 CA C4 96 29 D0 92 88 00 8F 35 01 02 06 01 56 A4 00 A6 CC FF 01 C4 CD 
    00 FE A8 CA C4 96 2D D0 92 88 00 8F 36 01 02 06 01 56 A4 00 A6 CC FF 0F 
    C4 CD 00 F0 A8 CA C4 96 30 D0 92 88 00 8F 37 01 02 06 01 56 A4 00 A6 CC 
    FF 01 C4 CD 00 FE A8 CA C4 96 00 8F 39 01 02 06 01 56 A4 00 C4 18 00 FE 
    28 D0 00 8F 3C 01 02 06 01 56 A4 00 92 92 FF 9C 7F 90 C4 CD 80 FF A8 CA 
    C4 96 02 83 00 8D 3E 01 00 8F 00 45 95 A8 02 8A 32 D0 94 28 55 AA 02 8A 
    34 D0 40 DC 92 CC 00 FF C7 FF 0F 90 C4 CD F0 FF A8 CA C4 96 02 8A 30 D0 
    43 DC 92 92 A9 CC FF 01 C4 CD 00 FE A8 CA C4 96 02 8A 33 D0 42 DC 92 92 
    A9 CC FF 01 C4 CD 00 FE A8 CA C4 96 02 8A 31 D0 45 DC 92 92 A9 CC FF 01 
    C4 CD 00 FE A8 CA C4 96 02 8A 00 02 46 D0 94 1E 02 83 80 D0 01 8F 04 01 
    95 A8 02 83 82 D0 00 8F 03 01 95 A8 84 BE 02 06 A6 0D A9 8A C4 18 F8 FF 
    86 BE 02 06 A6 0D A9 8A C4 18 80 FF 02 8A 32 D0 48 DC 92 CC 00 FF C7 FF 
    1F 90 87 FF C4 CD FF E0 A8 CA C4 96 02 8A 32 D0 48 DC 92 CC FF 00 1F 90 
    C4 CD E0 FF A8 CA C4 96 02 8A 35 D0 4A DC 92 CC 00 FF C7 FF C4 CD FF 0F 
    A8 88 03 56 A9 0C A6 CA C4 96 02 8A 35 D0 4C DC 92 CC FF 00 1F 90 C4 CD 
    E0 FF A8 CA C4 96 02 8A 27 D0 54 DC 92 CC FF 00 C4 93 A8 3C C4 97 02 83 
    82 D0 00 8F 03 01 95 A8 02 83 80 D0 01 8F 04 01 95 A8 02 8A 32 D0 94 2B 
    1F 76 E9 03 00 8F 44 01 02 06 01 56 A4 00 C4 CC F8 FF 02 50 C4 96 F2 92 
    F0 FE BE 86 BE 8B 06 00 40 76 47 EC 40 76 8E EB 06 00 22 76 1F 76 4C 17 
    22 1A 01 00 22 1A 04 00 22 1A 08 00 22 1A 10 00 22 1A 20 00 23 1A 04 00 
    26 1A 01 00 26 1A 02 00 26 1A 04 00 26 1A 08 00 26 1A 10 00 26 1A 20 00 
    26 1A 40 00 26 1A 80 00 26 1A 00 01 26 1A 00 02 26 1A 00 04 26 1A 00 08 
    28 1A 01 00 28 1A 02 00 28 1A 04 00 28 1A 08 00 28 1A 10 00 28 1A 20 00 
    2A 1A 01 00 2A 1A 02 00 2A 1A 04 00 2E 1A 01 00 2E 1A 02 00 30 1A 01 00 
    30 1A 02 00 30 1A 04 00 30 1A 08 00 32 1A 01 00 32 1A 02 00 32 1A 04 00 
    34 1A 01 00 34 1A 02 00 36 1A 01 00 36 1A 02 00 38 1A 01 00 38 1A 02 00 
    3C 1A 01 00 3C 1A 02 00 3C 1A 04 00 3C 1A 08 00 3E 1A 01 00 3E 1A 02 00 
    3E 1A 04 00 3E 1A 08 00 3E 1A 10 00 3E 1A 20 00 3E 1A 40 00 3E 1A 80 00 
    1F 76 4D 17 03 1A 01 00 03 1A 02 00 03 1A 04 00 1A 76 69 FF 06 00 22 76 
    00 02 1F 76 4C 17 22 1E 24 1E 26 1E 28 1E 2A 1E 2E 1E 30 1E 32 1E 34 1E 
    36 1E 38 1E 3A 1E 3C 1E 3E 1E 1F 76 4D 17 02 1E 1A 76 69 FF 06 00 22 76 
    05 6F 01 9A A8 28 5A 5A 24 1E 1F 76 00 14 24 92 03 90 01 52 F7 60 1A 76 
    69 FF 06 00 22 76 00 9A A8 28 5A 5A 1F 76 00 14 24 1E 1A 76 69 FF 06 00 
    22 76 1F 76 C0 01 25 CC 00 FF 55 50 25 96 25 CC 00 FF AA 50 25 96 1A 76 
    69 FF 06 00 02 FE 22 76 1F 76 C0 01 29 92 07 90 41 96 41 92 68 50 29 96 
    1A 76 69 FF 82 FE 06 00 10 FE 44 7D 43 7C 42 97 41 96 46 2B 47 2B 1F 76 
    48 17 41 88 0A 92 03 90 A9 0E A6 0F 1F 60 42 88 1E 92 7F 90 A9 0E A6 0F 
    19 60 43 88 1E CC 00 03 C7 FF A9 0E A6 0F 12 60 44 88 24 92 03 90 A9 0E 
    A6 0F E1 FF C3 00 0A 6F 40 76 81 ED 0D 6F 40 76 8B ED 0A 6F 40 76 97 ED 
    07 6F 41 92 F6 61 01 52 F7 61 04 52 F8 61 1F 76 4D 17 3C 92 07 90 4B 96 
    3C CC 38 00 C2 FF 4C 96 1F 76 30 00 14 92 48 96 12 06 50 1E 16 92 49 96 
    17 92 4A 96 22 76 1F 76 4D 17 3C CC F8 FF 06 50 3C 96 3C 18 C7 FF 1F 76 
    30 00 14 1A 10 00 0A 02 12 1E 16 2B 17 2B 14 18 FF BF 1F 76 48 17 24 1A 
    03 00 1A 76 34 6F 22 76 1F 76 48 17 18 18 FE FF 14 F6 00 77 03 56 43 08 
    42 CA A9 0E 1E 1E 18 1A 01 00 1A 76 20 92 01 90 01 52 FD 60 22 76 18 1A 
    02 00 14 F6 00 77 1F 76 30 00 14 1A 20 00 14 18 EF FF 45 2B 45 1B E8 03 
    0E 67 1F 76 30 00 14 4F 06 6C 14 1A 00 80 BF 56 47 01 05 6F 45 0A 45 1B 
    E8 03 F4 68 14 1A 10 00 46 0A 1A 76 46 92 05 52 03 67 47 92 C9 61 47 92 
    08 60 22 76 00 02 1F 76 48 17 1E 1E 1A 76 25 76 4D 2B 19 6F 22 76 18 18 
    FD FF 14 F6 00 77 18 18 FE FF 14 F6 00 77 03 56 43 08 42 CA A9 0E 1E 1E 
    20 92 01 90 01 52 FD 60 18 1A 02 00 14 F6 00 77 4D 0A 1A 76 1F 76 48 17 
    20 41 04 6C 4D 92 0A 52 E2 68 22 76 44 92 24 CD FC FF 03 90 A8 CA 24 96 
    1F 76 4D 17 4B 92 07 90 3C CD F8 FF A8 CA 3C 96 4C 92 07 90 82 FF 3C CD 
    C7 FF A8 CA 3C 96 48 92 1F 76 30 00 14 96 50 06 12 1E 49 92 16 96 4A 92 
    17 96 14 1A 20 00 1A 76 90 FE 69 FF 06 00 22 76 00 02 1F 76 C0 17 01 19 
    10 1E 00 02 01 19 12 1E 00 02 01 19 14 1E 00 02 01 19 16 1E 00 02 1F 76 
    C1 17 01 19 10 1E 00 02 01 19 12 1E 00 02 01 19 14 1E 00 02 01 19 16 1E 
    1A 76 00 9A 69 FF 06 00 22 76 1F 76 48 17 08 CC FC FF 02 50 08 96 08 1A 
    10 00 1A 76 69 FF 06 00 22 76 1F 76 48 17 08 18 F7 FF 08 18 FC FF 08 1A 
    10 00 1A 76 69 FF 06 00 22 76 1F 76 48 17 08 18 EF FF 08 CC FC FF 01 50 
    08 96 1A 76 69 FF 06 00 22 76 1F 76 48 17 08 18 F7 FF 0A 18 FC FF 1A 76 
    69 FF 06 00 22 76 1F 76 48 17 08 18 EF FF 0A CC FC FF 01 50 0A 96 1A 76 
    69 FF 06 00 22 76 1F 76 48 17 0A CC FC FF 02 50 0A 96 1A 76 69 FF 06 00 
    22 76 1F 76 4D 17 36 18 FC FF 1A 76 21 76 69 FF 06 00 22 76 1F 76 4D 17 
    36 CC FC FF 01 50 36 96 1A 76 21 76 69 FF 06 00 40 76 A1 ED 06 00 40 76 
    AA ED 06 00 02 FE 1F 76 C8 01 05 CC 40 00 C5 FF 01 52 FA 60 07 C6 41 96 
    2D 52 03 61 01 9A 02 6F 00 9A 82 FE 06 00 1F 76 C8 01 04 46 FD 6C 06 00 
    16 FE 00 8F 23 EF 1F 76 E8 03 2A A8 40 76 EE EE 40 76 01 EF AD 5C AD 5D 
    8E DC 8D DD A4 5C A5 5D 40 76 61 EF 43 96 20 52 E1 FF 90 00 1F 76 E8 03 
    3C 28 00 10 A9 28 78 56 A8 28 34 12 3E 1E 3A 2B 43 92 0C 52 1F 60 01 29 
    4C 25 4D AF 50 1E 4A 25 4B AF 52 1E 48 25 49 AF 54 1E 46 25 47 AF 56 1E 
    1F 76 C0 17 50 06 10 1E 52 06 12 1E 54 06 14 1E 56 06 16 1E 19 45 52 6D 
    1F 76 E8 03 3C 28 00 60 4D 6F 0D 52 1F 60 01 29 4C 25 4D AF 50 1E 4A 25 
    4B AF 52 1E 48 25 49 AF 54 1E 46 25 47 AF 56 1E 1F 76 C1 17 50 06 10 1E 
    52 06 12 1E 54 06 14 1E 56 06 16 1E 19 45 32 6D 1F 76 E8 03 3C 28 00 60 
    2D 6F A9 28 00 02 43 54 0D 60 40 76 57 F5 42 1E 1F 76 E8 03 A9 28 00 10 
    3C 54 20 60 42 06 3E 1E 1D 6F A9 28 00 04 43 54 08 60 01 29 4C 25 4D AF 
    50 1E 40 76 34 F4 12 6F A9 28 00 06 43 54 04 60 40 76 9D F1 0B 6F 43 92 
    10 52 06 60 01 29 4C 25 4D AF 42 1E 24 6F 3C 28 00 50 1F 76 E8 03 43 92 
    06 D5 00 8F 3E FA 3C 93 40 76 81 EE 00 52 F6 60 AD 5C AD 5D 8E DC 8D DD 
    A4 5C A5 5D 40 76 61 EF 43 96 20 52 E0 FF 74 FF 40 76 C0 EF 22 76 1F 76 
    C0 01 22 2B BF 56 29 28 1A 76 00 6F 96 FE 06 00 08 FE 43 7D 42 97 41 96 
    46 A8 40 76 CC ED 3D 8F FE 08 A9 A8 40 76 A0 F6 A9 28 E4 1B 40 76 CE EE 
    43 92 40 76 CE EE 1F 76 E8 03 3A 2B 41 92 40 76 CE EE 42 92 40 76 CE EE 
    47 2B 09 6F 01 3B 47 85 46 07 A9 8A C4 92 40 76 CE EE 47 0A 43 92 FE 9C 
    C0 FF 47 54 F4 66 40 76 B6 EE A9 28 1B E4 40 76 CE EE 40 76 BB ED 88 FE 
    06 00 1F 76 E8 03 3A C6 1F 76 C8 01 09 3C 40 76 CC ED 40 76 BB ED 1F 76 
    E8 03 3A 92 1F 76 C8 01 C7 FF 09 93 A8 3C 09 97 40 76 CC ED 40 76 BB ED 
    06 00 02 FE 41 96 1F 76 C8 01 09 93 A8 3C 09 97 FF 90 1F 76 E8 03 3A 72 
    40 76 CC ED 40 76 BB ED 41 92 09 93 C7 FF A8 3C 09 97 1F 76 E8 03 41 CC 
    00 FF C7 FF 3A 72 40 76 CC ED 40 76 BB ED 82 FE 06 00 22 76 1F 76 4C 17 
    30 1A 01 00 1F 76 C8 01 0A 28 00 80 BF 56 00 07 BF 56 01 03 04 2B BF 56 
    01 23 1A 76 69 FF 06 00 02 FE 1F 76 C8 01 03 CC 00 FF 01 50 03 96 0C 1A 
    00 20 0C 1A 00 40 0C CC 00 80 CE FF 01 52 FC 60 0C 1A 00 40 0C 18 FF DF 
    05 CC 40 00 C5 FF 01 52 FC 60 07 C6 41 96 09 93 A8 3C 09 97 40 76 CC ED 
    82 FE 06 00 02 FE 41 2B 42 2B 1F 76 C8 01 05 CC 40 00 C5 FF 01 52 FA 60 
    07 C6 41 96 05 CC 40 00 C5 FF 01 52 FC 60 07 C6 42 96 1F 76 E8 03 41 92 
    3A 94 42 94 3A 96 03 56 42 08 41 98 41 92 82 FE 06 00 02 FE 41 2B 42 2B 
    1F 76 C8 01 05 CC 40 00 C5 FF 01 52 FA 60 07 C6 41 96 05 CC 40 00 C5 FF 
    01 52 FC 60 07 C6 42 96 1F 76 E8 03 41 92 3A 94 42 94 3A 96 03 56 42 08 
    41 98 41 92 82 FE 06 00 08 FE 44 A0 42 A8 40 76 42 EF A9 88 00 8F E4 1B 
    A9 A8 A6 0F 06 61 40 76 B5 EF A9 28 00 01 38 6F 40 76 42 EF 42 8A C4 96 
    3A 2B 40 76 42 EF 45 96 46 2B 46 2B 0B 6F 40 76 42 EF A9 88 21 56 46 00 
    A9 AB 44 07 A9 8A C4 7E 46 0A 42 8A C4 92 C0 FF 46 54 F2 66 1F 76 E8 03 
    3A 92 47 96 40 76 42 EF 47 88 A9 0E A6 0F 05 61 40 76 B5 EF 65 9A 10 6F 
    40 76 42 EF A9 88 00 8F 1B E4 A9 A8 A6 0F 05 61 40 76 B5 EF 66 9A 04 6F 
    40 76 AA EF 45 92 88 FE 06 00 1F 76 C8 01 04 47 FD 6C 09 CC 00 FF 2D 50 
    09 96 40 76 CC ED 06 00 1F 76 C8 01 04 47 FD 6C 09 CC 00 FF A5 50 09 96 
    40 76 CC ED 06 00 40 76 2F EC 1F 76 00 14 04 1A 20 00 02 CC 20 00 C4 FF 
    01 52 FC 61 00 77 00 77 69 FF 06 00 0A FE 43 96 42 A8 00 8F FF FF 46 A8 
    48 A8 49 2B 49 54 1F 69 42 8A 49 92 01 F0 A9 58 94 0E 46 07 46 1E 46 A3 
    AA 18 00 00 46 06 A8 0E 01 56 AB 00 46 A9 46 06 48 07 48 1E 48 A3 48 06 
    AA 18 00 00 A8 0E 01 56 AB 00 48 A9 49 0A 43 92 49 54 E3 66 48 06 3F FF 
    46 CA 45 CB 8A FE 06 00 
    A4 06 00 00 00 F0 2E FE 46 97 45 96 44 A0 42 A8 47 2B 1F 76 E9 03 02 06 
    90 09 4A 1E 02 06 90 09 4C 1E 02 06 A0 09 4E 1E 04 92 4F 96 06 92 50 96 
    00 02 52 1E 54 1E 56 1E 58 1E 5A 1E 5C 1E 03 56 45 01 5D 96 46 92 5E 96 
    44 06 60 1E 72 06 62 1E 63 2B 64 2B 65 2B 00 02 68 1E 69 2B 6C 1E 6E 1E 
    42 06 30 FF 42 1E 02 8A 28 D0 94 92 07 90 07 52 05 ED 05 92 4F 96 07 92 
    50 96 4F 88 42 06 81 DE A6 89 52 1E 4F 92 FF 9C A9 0E 55 FF 5A 1E 73 92 
    02 52 0A EC 5D 92 06 EC 4F 88 5D 0E 52 07 A6 0F 03 69 47 28 FD 01 73 92 
    01 52 0E EC 00 52 0C EC 5E 92 08 EC 52 06 50 88 01 29 42 FF 5E 0D A6 0F 
    03 69 47 28 FE 01 73 92 03 52 0A ED 5D 92 07 90 07 EC 5D 92 C2 FF 5E 54 
    03 EC 47 28 FF 01 42 C4 0E 8F 00 00 A9 A8 A6 0F 09 66 42 C4 0F 8F 00 00 
    A9 A8 A6 0F 03 69 47 28 FB 01 42 C4 0F 8F 30 00 A9 A8 A6 0F 09 66 42 C4 
    0F 8F 38 00 A9 A8 A6 0F 03 69 47 28 FB 01 42 C4 0F 8F 30 04 A9 A8 A6 0F 
    09 66 42 C4 0F 8F 38 04 A9 A8 A6 0F 03 69 47 28 FB 01 07 8F 01 02 C4 92 
    07 90 A9 0E 6E 1E 06 02 6E 0F 0F ED 42 C4 14 8F 00 00 A9 A8 A6 0F 09 66 
    42 C4 18 8F 00 00 A9 A8 A6 0F 03 69 47 28 FB 01 42 C4 0F 8F 00 00 A9 A8 
    A6 0F 07 66 42 C4 0F 8F 20 00 A9 A8 A6 0F 0D 66 42 C4 0F 8F 00 04 A9 A8 
    A6 0F 0F 66 42 C4 0F 8F 20 04 A9 A8 A6 0F 09 69 73 92 02 52 04 ED 47 28 
    00 02 03 6F BF 56 73 01 47 92 C0 56 CC 00 10 9A 40 76 FE F4 02 9A 40 76 
    C3 F5 73 92 11 ED 1F 76 E9 03 02 8A 00 8D 03 02 94 CC 20 00 C4 FF 01 52 
    07 ED 02 06 8F BE A6 0D A9 8A C4 1A 00 01 1F 76 E9 03 02 8A 42 06 88 D0 
    94 1E 73 92 02 52 1C EC 52 06 01 29 40 FF 6C 1E 45 92 FF 9C A9 0E 6C 07 
    54 1E 6C 06 5C 1E 54 06 5C 0F 0E 68 60 83 4C 06 85 88 5C 07 A9 8A 60 A0 
    C4 7E 01 02 5C 07 5C 1E 54 06 5C 0F F4 67 1F 76 E9 03 02 8A 8F D0 94 CC 
    00 01 C7 FF 01 52 74 EC 73 92 01 52 71 EC 52 06 01 29 42 FF 56 1E 73 92 
    0B ED 5D 92 FF 9C A9 0E 52 07 54 1E 54 06 42 FF 01 09 58 1E 04 6F 5E 0E 
    56 07 58 1E 42 C4 10 8F 00 00 A9 A8 A6 0F 0F 66 42 C4 17 8F FE FF A9 A8 
    A6 0F 09 68 42 06 0F FF 20 00 43 FF 1F FF 10 02 68 1E 14 6F 42 C4 0F 8F 
    00 00 A9 A8 A6 0F 0E 66 42 C4 0F 8F FE 07 A9 A8 A6 0F 08 68 42 06 0F FF 
    1E 00 43 FF 1C FF 71 10 68 1E 69 2B 56 06 5C 1E 58 06 5C 0F 31 69 68 8A 
    C4 92 63 96 5C 06 0F ED 62 C5 C7 92 64 96 63 92 4E 8A C7 FF A9 88 03 56 
    64 08 A6 CA CC 96 BF 56 69 01 18 6F 01 02 5C 0F 15 ED 62 8A 84 92 C7 FF 
    62 A8 65 96 69 92 01 52 08 ED 4E 8A 03 56 64 08 65 CA CC 96 69 2B 06 6F 
    4E 8A 03 56 63 08 65 CA CC 96 01 02 5C 07 5C 1E 58 06 5C 0F D1 66 02 9A 
    40 76 FE F4 1F 76 E9 03 02 8A 8F D0 94 CC 00 01 C7 FF 01 52 07 ED 02 06 
    8F BE A6 0D A9 8A C4 18 FF FE 47 92 AE FE 06 00 BD B2 BD AA AD 5A 86 DA 
    AD 08 9A 00 1F 76 E8 03 3C 28 00 10 A9 28 78 65 A8 28 34 12 3E 1E 11 D0 
    92 2B 00 8F 23 EF 1F 76 E8 03 2A A8 40 76 23 EF A9 88 00 8F AA 08 A9 A8 
    A6 0F 08 61 1F 76 E8 03 3C 28 00 30 08 8F 00 00 3E A8 40 76 20 E9 40 76 
    0E E9 40 76 B6 EE 1F 76 E8 03 2A C5 67 3E 46 96 22 76 EF FF FE 00 69 FF 
    40 76 0E E9 44 1E 48 2B EF FF EE 00 80 52 22 67 49 2B 0E 6F 1F 76 E8 03 
    2A C5 67 3E 47 96 AD 5C A4 08 76 FF 49 58 A4 5C 94 96 48 0A 49 0A 46 92 
    49 54 F1 66 49 96 80 52 46 67 AD 5C A4 08 76 FF 49 58 A4 5C 94 28 FF FF 
    49 0A 49 92 80 52 F6 68 3A 6F 48 9E 80 52 23 67 49 2B 0D 6F 1F 76 E8 03 
    2A C5 67 3E 47 96 AD 5C A4 08 76 FF 49 58 A4 5C 94 96 49 0A 46 92 48 9E 
    49 54 F1 66 49 92 48 72 80 52 21 67 AD 5C A4 08 76 FF 49 58 A4 5C 94 28 
    FF FF 49 0A 49 92 80 52 F6 68 15 6F 49 2B 49 92 80 52 11 67 1F 76 E8 03 
    2A C5 67 3E 47 96 AD 5C A4 08 76 FF 49 58 A4 5C 94 96 48 0A 49 0A 49 92 
    80 52 F1 68 4A 2B 4A 92 20 52 E7 FF 8B 00 AD 5C A4 08 76 FF 03 56 4A 02 
    A9 58 A4 5C 94 92 12 D0 92 96 AD 5C A4 08 76 FF 03 56 4A 02 A9 58 A4 5C 
    01 D8 94 92 13 D0 92 96 AD 5C A4 08 76 FF 03 56 4A 02 A9 58 A4 5C 02 D8 
    94 92 14 D0 92 96 AD 5C A4 08 76 FF 03 56 4A 02 A9 58 A4 5C 03 D8 94 92 
    15 D0 92 96 12 D0 92 88 00 8F FF FF A9 A8 A6 0F 0D 60 13 D0 92 88 A6 0F 
    09 60 14 D0 92 88 A6 0F 05 60 15 D0 92 88 A6 0F 44 61 40 76 96 F6 01 52 
    FD 61 49 2B 49 92 04 52 3C 67 AD 5C A4 08 72 FF 49 58 A4 5C 01 D8 94 0E 
    F2 1E F2 06 3F FF F2 1E AD 5C A4 08 72 FF 49 58 A4 5C F2 06 94 AF F2 1E 
    AD 5C AD 5D A4 08 68 FF A5 08 66 FF A4 0E A5 5D 42 1E 49 0E 44 07 A9 8A 
    01 02 40 76 6F F6 10 D0 92 96 10 D0 92 92 10 61 11 D0 92 92 08 60 1F 76 
    E8 03 3C 28 00 30 08 D0 92 06 3E 1E 11 D0 92 92 11 D0 01 9C 92 96 49 08 
    02 00 49 92 04 52 C6 68 04 02 44 07 44 1E 4A 0A 4A 92 20 52 E8 FF 79 FF 
    40 76 B6 EE 46 92 48 54 E6 FF 12 FF 1F 76 E8 03 2A C5 67 3E 46 96 00 52 
    E0 FF 03 FF 1A 76 AD 08 66 FF 69 FF BE 86 BE 8B 06 00 0E FE 46 A0 44 1E 
    42 A8 42 06 40 76 A1 F5 00 52 35 ED 42 06 48 1E 44 C4 A6 8A 00 02 A6 0F 
    81 DC 44 A8 74 EC 52 8A 48 83 C4 06 C5 0F 0F EC 46 8A 48 06 C4 1E 48 8A 
    46 83 C4 06 D5 1E 52 8A 46 83 C4 06 E5 1E A9 28 F4 01 62 6F 00 BE 48 06 
    00 9B FF 90 A6 0F 03 ED 40 76 80 00 53 92 04 EC 52 06 02 09 52 1E 02 02 
    01 56 48 00 44 C4 A6 8A 00 02 A6 0F 81 DC 44 A8 D7 ED 49 6F 42 06 48 1E 
    52 06 4A 1E BF 56 4B 04 BF 56 4B 02 44 C4 A6 8A 00 02 A6 0F 81 DC 44 A8 
    3A EC 4E 1E 4B 0E 4E 0F 1F 69 4A 06 4E 07 A9 8A C4 88 48 06 4E 07 A9 8A 
    A6 92 C4 54 0F EC 46 8A 48 06 C4 1E 48 8A C4 0E 46 8A D4 1E 4A 8A C4 0E 
    46 8A E4 1E A9 28 F4 01 1F 6F 01 02 4E 07 4E 1E 4B 0E 4E 0F E3 66 00 BE 
    48 06 00 9B FF 90 A6 0F 03 ED 40 76 80 00 53 92 04 EC 02 02 01 56 4A 00 
    02 02 01 56 48 00 44 C4 A6 8A 00 02 A6 0F 81 DC 44 A8 C8 ED 00 9A 8E FE 
    06 00 10 FE 4A A0 48 1E 46 A8 4B 2B 1F 76 E9 03 02 8A 20 D0 94 06 50 1E 
    40 76 59 F6 54 06 42 1E 55 92 43 96 46 8A 4A 83 48 06 40 76 D6 F2 00 52 
    06 EC 4A 8A 00 02 F4 1E 4B 28 F4 01 1F 76 E9 03 02 8A A9 28 FF FF A8 28 
    05 05 20 D0 94 1E 46 8A C4 06 4E 1E 02 83 02 8A 28 D0 95 92 07 90 A9 2D 
    01 9A 66 FF 02 DC C4 93 A9 39 C4 97 02 8A D4 1A 01 00 40 76 59 F6 54 06 
    42 1E 55 92 43 96 46 8A 4A 83 48 06 40 76 D6 F2 00 52 07 EC 4A 8A 01 02 
    F4 1E 4B 28 F4 01 2C 6F 1F 76 E9 03 02 8A D4 1A 02 00 02 8A D4 18 FE FF 
    40 76 59 F6 54 06 42 1E 55 92 43 96 46 8A 4A 83 48 06 40 76 D6 F2 00 52 
    07 EC 4A 8A 02 02 F4 1E 4B 28 F4 01 11 6F 1F 76 E9 03 02 8A D4 18 FF 00 
    02 8A D4 18 FD FF 40 76 59 F6 1F 76 E9 03 02 8A 20 D0 50 06 94 1E 1F 76 
    E9 03 02 8A 50 06 20 D0 94 1E 4B 92 90 FE 06 00 04 FE 1F 76 C8 01 04 46 
    FD 6C 10 3B 26 76 00 00 2F 76 00 00 69 FF 40 76 F8 00 41 2B 41 2B 41 1B 
    A4 7F 05 67 41 0A 41 1B A4 7F FD 68 41 2B 41 1B A4 7F 05 67 41 0A 41 1B 
    A4 7F FD 68 02 02 1F 76 00 14 20 1E 01 02 22 0F FE 60 10 29 20 29 69 FF 
    40 76 20 EC 40 76 11 F4 40 76 D1 ED 44 1E 40 76 C0 EF 44 06 84 FE 06 00 
    02 FE 22 76 1F 76 EC 17 00 18 F0 FF 05 8F 00 F8 96 02 69 FF 40 76 CA F4 
    41 96 00 52 03 61 40 76 2F 01 00 9A 40 76 7C F5 41 96 00 52 03 61 40 76 
    2F 01 1F 76 EC 17 00 CC F0 FF 0A 50 00 96 1A 76 69 FF 82 FE 06 00 0E FE 
    42 1E 1F 76 E8 03 3C 28 00 10 A9 28 78 56 A8 28 34 12 3E 1E 43 2B 4D 2B 
    22 76 43 2B 43 92 0E 52 3F 63 01 BE 42 06 00 9B 01 90 A6 0F 31 60 01 3B 
    00 8F 00 FA 03 56 43 01 01 56 A4 00 69 FF 06 9A C4 8A 40 76 07 F6 44 96 
    01 3B 80 76 00 FA 00 8F 1C FA AD 5D 03 56 43 01 01 56 A6 00 A9 A8 43 81 
    A9 8A 8C DD A5 5D C4 0E C6 8A 40 76 88 F4 44 96 00 52 0A 61 4D 92 07 60 
    1F 76 E8 03 3C 28 00 20 4C 06 3E 1E 4D 0A 40 76 96 F6 01 52 FD 61 42 06 
    01 29 40 FF 42 1E 43 0A 43 92 0E 52 C3 64 1A 76 8E FE 69 FF 06 00 12 FE 
    4A A0 48 1E 46 A8 4B 2B 00 02 01 19 50 1E 1F 76 E9 03 02 8A 20 D0 94 06 
    52 1E 02 8A A9 28 FF FF A8 28 05 05 20 D0 94 1E 46 8A C4 06 4E 1E 02 8A 
    02 83 28 D0 95 92 07 90 02 DC A9 2D 01 9A 66 FF C4 93 A9 39 C4 97 02 8A 
    D4 1A 01 00 40 76 59 F6 AD 5C 90 DC 42 A8 43 2B 4A 83 48 06 46 8A 40 76 
    D6 F2 00 52 06 EC 4A 8A 01 02 F4 1E 4B 28 F4 01 1F 76 E9 03 02 8A 52 06 
    20 D0 94 1E 4B 92 92 FE 06 00 04 FE 44 1E 42 A8 1F 76 E9 03 44 92 0A 96 
    42 8A C4 CC 00 0F C7 FF 08 96 42 8A 00 8D 5D 01 94 92 0F 90 09 96 42 06 
    02 1E 42 8A 00 8D 00 02 94 92 C3 FF A9 CC C0 01 C2 FF 04 96 42 8A 94 CC 
    80 03 C3 FF C2 FF 06 96 42 8A 00 8D 01 02 94 CC 00 0C C3 FF C2 FF 05 96 
    42 8A 94 CC 80 01 C3 FF C2 FF 07 96 00 9A 84 FE 06 00 02 FE 41 96 1F 76 
    E9 03 00 8F 44 01 02 06 01 56 A4 00 C4 CC F8 FF 05 50 C4 96 00 8F 06 01 
    02 06 01 56 A4 00 41 92 3F 90 C4 CD C0 FF A8 CA C4 96 00 8F 5A 01 02 06 
    01 56 A4 00 C4 CC E0 FF 15 50 C4 96 00 8F 44 01 02 06 01 56 A4 00 C4 CC 
    F8 FF 02 50 C4 96 00 9A 82 FE 06 00 06 FE 42 1E 00 02 44 1E BF 56 45 01 
    45 92 20 52 1C 66 42 A3 AC 28 1F 00 A9 A9 22 56 5A FF 44 06 30 FF AB CA 
    AA CB 44 1E 42 06 30 FF 42 1E 4A 06 44 0F 07 66 4A 06 41 56 44 00 01 02 
    42 07 42 1E 45 0A 45 92 20 52 E6 69 44 06 04 EC 4C 06 42 07 42 1E 42 06 
    86 FE 06 00 04 FE 00 8F 23 EF 1F 76 E8 03 2A A8 40 76 23 EF A9 88 00 8F 
    AA 08 A9 A8 A6 0F 04 61 08 8F 00 00 12 6F 40 76 20 E9 40 76 0E E9 42 1E 
    40 76 85 E5 43 2B 43 2B 43 1B A4 7F 05 67 43 0A 43 1B A4 7F FD 68 42 8A 
    84 FE A9 A8 06 00 04 FE 41 96 42 2B 1F 76 E9 03 02 8A 28 D0 94 92 07 90 
    43 96 02 8A 41 92 07 90 28 DC C4 CD F8 FF A8 CA C4 96 02 8A 28 D0 94 92 
    07 90 41 54 04 EC A9 28 FA 01 02 6F 00 9A 42 96 00 52 05 ED 41 92 40 76 
    30 E9 42 96 84 FE 06 00 02 FE 42 1E 2F FF 10 02 42 0F 05 66 2F FF 11 02 
    42 0F 14 66 2F FF 0E 02 42 0F 06 66 80 9A A8 28 07 01 42 0F 0B 66 2C FF 
    71 10 42 0F 09 66 A9 28 80 10 A8 28 07 01 42 0F 03 69 01 9A 02 6F 00 9A 
    82 FE 06 00 02 FE 41 96 02 52 05 EC 06 52 03 EC 08 52 18 ED 1F 76 E9 03 
    02 8A 18 DC C4 1A 01 00 02 8A 28 D0 94 92 07 90 07 52 04 ED 40 76 82 00 
    03 6F 40 76 D5 00 1F 76 E9 03 02 8A 18 DC C4 18 FE FF 00 9A 82 FE 06 00 
    1F 56 22 76 C0 B9 29 28 68 00 1A 76 40 76 DD F3 CF 56 02 00 AD 28 00 04 
    BD 2B BD 2B BD 1E 07 00 33 56 AC 1E A9 58 A9 59 A9 5A A9 5B A9 5C A9 5D 
    A9 88 A9 80 1F 76 00 00 BD 2B BD 28 0B 0A 00 76 13 76 06 00 06 FE 41 96 
    44 A8 45 2B 44 06 30 FF 44 1E 41 92 08 52 05 ED 45 28 00 02 45 92 11 6F 
    10 9A 40 76 FE F4 41 92 40 76 C3 F5 1F 76 E9 03 02 8A 88 D0 44 06 94 1E 
    41 92 40 76 FE F4 00 9A 86 FE 06 00 02 FE 42 1E 1F 76 E9 03 0A 0E AC 1E 
    65 56 42 00 42 A9 42 06 09 EC 42 06 0A EC 01 02 41 56 42 00 42 06 FC ED 
    04 6F A9 28 F4 01 02 6F 00 9A 82 FE 69 FF 06 00 41 C1 42 C0 44 06 AA CF 
    AB CE 5A FF 42 06 20 76 41 99 42 98 44 06 AA CB AB CA 5A FF 42 06 20 76 
    41 F3 42 F2 44 06 AA 71 AB 70 5A FF 42 06 20 76 02 FE 08 8F 00 20 C4 06 
    42 1E 08 8F 00 21 C4 06 42 1E 08 8F 00 22 C4 06 42 1E 08 8F 00 23 C4 06 
    42 1E 01 02 40 76 27 F6 82 FE 06 00 0A FE 4A A0 48 1E 46 A8 4A 06 42 1E 
    BF 56 43 02 4E 83 46 8A 48 06 40 76 5E F3 8A FE 06 00 04 FE 42 1E 48 87 
    01 29 44 56 42 00 45 FF 44 1E 40 76 80 00 44 06 84 FE 06 00 04 FE 44 1E 
    42 A8 42 06 44 07 A9 8A 48 92 40 76 CF EF 84 FE 06 00 1F 76 E9 03 02 8A 
    2A D0 94 48 03 EF 01 9A 02 6F 02 9A 06 00 01 19 C3 56 FF FF 06 00 
    00 00 
    

  • Does the kernel try to execute that opcode? Can you set a breakpoint and see why and when this is trying to be executed?

    I am not sure why this is needed even for what we are doing with the Flash API.

    sal
  • Hi Sal,

    Yes, kernel tries to execute it and, then the Illegal Intruction Itrap is triggered. This happens in several parts of the code. It also happens when executing SETC OBJMODE in wd_disable

     

    ***********************************************************************
    * Function: wd_disable
    *
    * Description: Disables the watchdog timer
    ***********************************************************************
        .if WD_DISABLE == 1

        .text
    __stack:    .usect ".stack",0

    wd_disable:
        SETC OBJMODE        ;Set OBJMODE for 28x object code
        EALLOW              ;Enable EALLOW protected register access
        MOVZ DP, #7029h>>6  ;Set data page for WDCR register
        MOV @7029h, #0068h  ;Set WDDIS bit in WDCR to disable WD
        EDIS                ;Disable EALLOW protected register access
    ;    LB _c_int00         ;Branch to start of boot._asm in RTS library
     LCR _main
    ; Cleanup and exit.  At this point the EntryAddr
    ; is located in the ACC register
        BF  _ExitBoot,UNC
        .endif

    ;end wd_disable

     

    I have found a similar issue in the forum:

     

    https://e2e.ti.com/support/microcontrollers/c2000/f/171/t/533671?About-TMS32F28075-Bootloader-failure-via-UART-TI-RTOS-

     

    But I does not seem related to what is happening to me.

     

    Dis you manage to test the CPU2 kernel txt file I sent you? Is it right?

     

    Best regards,

     

    Andreu

     

  • Hi,

    We haven't run the kernel you sent.

    Can you try to find the block of memory in the hex file that illegal instruction is in? It would be good to see if the opcode is in the hex file but just not being programmed, which would be strange.

    This may be an issue with the hex file somehow not including this instruction. Can you try moving the section or linking the function to a different location and see if this fixes the issue?

    sal
  • Hi Sal,

    Many thanks for your answer. I have moved the .TI.ramfunc section from RAMM0 to RAMD0 in the flash_programming_cpu2_RAM.cmd file:

     

    Original Setting

    #ifdef __TI_COMPILER_VERSION__
        #if __TI_COMPILER_VERSION__ >= 15009000
           .TI.ramfunc      : > RAMM0      PAGE = 0
        #else
           ramfuncs         : > RAMM0      PAGE = 0
        #endif
    #endif 

    New Setting

    #ifdef __TI_COMPILER_VERSION__
        #if __TI_COMPILER_VERSION__ >= 15009000
           .TI.ramfunc      : > RAMD0      PAGE = 0
        #else
           ramfuncs         : > RAMD0      PAGE = 0
        #endif
    #endif 

    Now it works, so I can program both CPUs and make them run. Have you got any idea, about what the problem can be?

    This is the original cmd file:

    MEMORY
    {
    PAGE 0 :
       /* BEGIN is used for the "boot to SARAM" bootloader mode   */
    
       BEGIN           	: origin = 0x000000, length = 0x000002
       RAMM0           	: origin = 0x000080, length = 0x000380
       RAMD0           	: origin = 0x00B000, length = 0x000800
       RAMLS0          : origin = 0x008000, length = 0x000800
       RAMLS1          	: origin = 0x008800, length = 0x000800
       RAMLS2      		: origin = 0x009000, length = 0x000800
       RAMLS3      		: origin = 0x009800, length = 0x000800
       RAMLS4      		: origin = 0x00A000, length = 0x000800
       RESET           : origin = 0x3FFFC0, length = 0x000002
       RAMGS0      : origin = 0x00C000, length = 0x001000
       RAMGS1      : origin = 0x00D000, length = 0x001000
       RAMGS2      : origin = 0x00E000, length = 0x001000
       RAMGS3_code      : origin = 0x00F000, length = 0x000A00
       RAMGS4      : origin = 0x010000, length = 0x001000
       RAMGS5      : origin = 0x011000, length = 0x001000
       RAMGS6      : origin = 0x012000, length = 0x001000
    
    PAGE 1 :
    
       BOOT_RSVD       : origin = 0x000002, length = 0x00007E     /* Part of M0, BOOT rom will use this for stack */
       RAMM1           : origin = 0x000400, length = 0x000400     /* on-chip RAM block M1 */
       RAMD1           : origin = 0x00B800, length = 0x000800
       
       RAMLS5      : origin = 0x00A800, length = 0x000800
    
       RAMGS3_data	: origin = 0x00FA00, length = 0x500
    
       RAMGS7      : origin = 0x013000, length = 0x001000
       RAMGS8      : origin = 0x014000, length = 0x001000
       RAMGS9      : origin = 0x015000, length = 0x001000
       RAMGS10     : origin = 0x016000, length = 0x001000
       RAMGS11     : origin = 0x017000, length = 0x001000
       RAMGS12     : origin = 0x018000, length = 0x001000
       RAMGS13     : origin = 0x019000, length = 0x001000
       RAMGS14     : origin = 0x01A000, length = 0x001000
       RAMGS15     : origin = 0x01B000, length = 0x001000
    
       CPU2TOCPU1RAM   : origin = 0x03F800, length = 0x000400
       CPU1TOCPU2RAM   : origin = 0x03FC00, length = 0x000400
       
    }
    
    
    SECTIONS
    {
       codestart        : > BEGIN,     PAGE = 0
       .text            : >> RAMGS2 | RAMGS3_code,   PAGE = 0
       .cinit           : > RAMM0,     PAGE = 0
       .pinit           : > RAMM0,     PAGE = 0
       .switch          : > RAMM0,     PAGE = 0
       .reset           : > RESET,     PAGE = 0, TYPE = DSECT /* not used, */
    
       .stack           : > RAMM1,     PAGE = 1
       .ebss            : > RAMGS3_data,     PAGE = 1
       .econst          : > RAMGS3_data,     PAGE = 1
       .esysmem         : > RAMGS3_data,     PAGE = 1
       Filter_RegsFile  : > RAMGS8,	   PAGE = 1
    
       ramgs0           : > RAMGS3_data,    PAGE = 1
       ramgs1           : > RAMGS9,    PAGE = 1
       
    #ifdef __TI_COMPILER_VERSION__
        #if __TI_COMPILER_VERSION__ >= 15009000
           .TI.ramfunc      : > RAMM0      PAGE = 0
        #else
           ramfuncs         : > RAMM0      PAGE = 0
        #endif
    #endif  
       
       /* The following section definitions are required when using the IPC API Drivers */ 
        GROUP : > CPU2TOCPU1RAM, PAGE = 1 
        {
            PUTBUFFER 
            PUTWRITEIDX 
            GETREADIDX 
        }
        
        GROUP : > CPU1TOCPU2RAM, PAGE = 1
        {
            GETBUFFER :    TYPE = DSECT
            GETWRITEIDX :  TYPE = DSECT
            PUTREADIDX :   TYPE = DSECT
        }  
    
    
        /* The following section definition are for SDFM examples */
       Filter1_RegsFile : > RAMGS10,	PAGE = 1, fill=0x1111
       Filter2_RegsFile : > RAMGS11,	PAGE = 1, fill=0x2222
       Filter3_RegsFile : > RAMGS12,	PAGE = 1, fill=0x3333
       Filter4_RegsFile : > RAMGS13,	PAGE = 1, fill=0x4444
       Difference_RegsFile : >RAMGS14, 	PAGE = 1, fill=0x3333
    
    }
    

    Many thanks in advance,

    Andreu

  • Hi Andreu,

    The issue may be that the boot ROM uses RAMM0 for stack and local variables when the boot ROM code is executing.

    I suspect that the ROM code is overwriting the memory location that is being programmed by the bootloader, so that the value (opcode) may be getting loaded, but it is getting overwritten by the ROM. Now, you have the code being loaded somewhere else which is not being overwritten by the ROM.

    This is my best guess given the behavior. Glad you got it working.
    sal
  • Sal,

    Does it mean, then, that the project in C2000Ware_1_00_06_00\device_support\f2837xd\examples\dual\F2837xD_sci_flash_kernels\cpu02 is wrong?

    Andreu

  • It appears so. I will file a bug for this to be fixed.

    sal
  • Sal,

    Many thanks for your help.

    Best regards,

    Andreu