#
# Copyright (c) 2013-2015 Grigori Goronzy <greg@chown.ath.cx>
#
# Permission is hereby granted, free of charge, to any person obtaining a copy
# of this software and associated documentation files (the "Software"), to deal
# in the Software without restriction, including without limitation the rights
# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
# copies of the Software, and to permit persons to whom the Software is
# furnished to do so, subject to the following conditions:
#
# The above copyright notice and this permission notice shall be included in all
# copies or substantial portions of the Software.
#
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
# SOFTWARE.
#

import collections

class MCUModelDatabase:
    """Database that holds basic MCU information.

    This database holds the most basic information about MCU models:
    name, identification code and flash memory sizes.
    """

    MCUModel = collections.namedtuple("MCUModel", ["name", "magic", "total", "code", "eeprom"])

    models = (
        MCUModel(name='STC8F1K02S2', magic=0xf661, total=20480, code=2048, eeprom=10240),
        MCUModel(name='STC8F1K04S2', magic=0xf662, total=20480, code=4096, eeprom=8192),
        MCUModel(name='STC8F1K06S2', magic=0xf663, total=20480, code=6144, eeprom=6144),
        MCUModel(name='STC8F1K08S2', magic=0xf664, total=20480, code=8192, eeprom=4096),
        MCUModel(name='STC8F1K10S2', magic=0xf665, total=20480, code=10240, eeprom=2048),
        MCUModel(name='STC8F1K12S2', magic=0xf666, total=20480, code=12288, eeprom=0),
        MCUModel(name='STC8F1K17S2', magic=0xf667, total=20480, code=17408, eeprom=0),
        MCUModel(name='STC8F1K02', magic=0xf671, total=20480, code=2048, eeprom=10240),
        MCUModel(name='STC8F1K04', magic=0xf672, total=20480, code=4096, eeprom=8192),
        MCUModel(name='STC8F1K06', magic=0xf673, total=20480, code=6144, eeprom=6144),
        MCUModel(name='STC8F1K08', magic=0xf674, total=20480, code=8192, eeprom=4096),
        MCUModel(name='STC8F1K10', magic=0xf675, total=20480, code=10240, eeprom=2048),
        MCUModel(name='STC8F1K12', magic=0xf676, total=20480, code=12288, eeprom=0),
        MCUModel(name='STC8F1K17', magic=0xf677, total=20480, code=17408, eeprom=0),
        MCUModel(name='STC15U4K16S4', magic=0xf580, total=65536, code=16384, eeprom=44032),
        MCUModel(name='STC15U4K24S4', magic=0xf581, total=65536, code=24576, eeprom=35840),
        MCUModel(name='STC15U4K32S4', magic=0xf582, total=65536, code=32768, eeprom=27648),
        MCUModel(name='STC15U4K40S4', magic=0xf583, total=65536, code=40960, eeprom=19456),
        MCUModel(name='STC15U4K48S4', magic=0xf584, total=65536, code=49152, eeprom=11264),
        MCUModel(name='STC15U4K56S4', magic=0xf585, total=65536, code=57344, eeprom=3072),
        MCUModel(name='STC8A8K08S4A12', magic=0xf621, total=65536, code=8192, eeprom=57344),
        MCUModel(name='STC8A8K16S4A12', magic=0xf622, total=65536, code=16384, eeprom=49152),
        MCUModel(name='STC8A8K24S4A12', magic=0xf623, total=65536, code=24576, eeprom=40960),
        MCUModel(name='STC8A8K32S4A12', magic=0xf624, total=65536, code=32768, eeprom=32768),
        MCUModel(name='STC8A8K40S4A12', magic=0xf625, total=65536, code=40960, eeprom=24576),
        MCUModel(name='STC8A8K48S4A12', magic=0xf626, total=65536, code=49152, eeprom=16384),
        MCUModel(name='STC8A8K56S4A12', magic=0xf627, total=65536, code=57344, eeprom=8192),
        MCUModel(name='STC8A8K60S4A12', magic=0xf629, total=65536, code=61440, eeprom=4096),
        MCUModel(name='STC8A8K64S4A12', magic=0xf628, total=65536, code=65024, eeprom=512),
        MCUModel(name='STC8A4K08S2A12', magic=0xf651, total=65536, code=8192, eeprom=57344),
        MCUModel(name='STC8A4K16S2A12', magic=0xf652, total=65536, code=16384, eeprom=49152),
        MCUModel(name='STC8A4K24S2A12', magic=0xf653, total=65536, code=24576, eeprom=40960),
        MCUModel(name='STC8A4K32S2A12', magic=0xf654, total=65536, code=32768, eeprom=32768),
        MCUModel(name='STC8A4K40S2A12', magic=0xf655, total=65536, code=40960, eeprom=24576),
        MCUModel(name='STC8A4K48S2A12', magic=0xf656, total=65536, code=49152, eeprom=16384),
        MCUModel(name='STC8A4K56S2A12', magic=0xf657, total=65536, code=57344, eeprom=8192),
        MCUModel(name='STC8A4K60S2A12', magic=0xf659, total=65536, code=61440, eeprom=4096),
        MCUModel(name='STC8A4K64S2A12', magic=0xf658, total=65536, code=65024, eeprom=512),
        MCUModel(name='STC8F8K08S4A12', magic=0xf611, total=65536, code=8192, eeprom=57344),
        MCUModel(name='STC8F8K16S4A12', magic=0xf612, total=65536, code=16384, eeprom=49152),
        MCUModel(name='STC8F8K24S4A12', magic=0xf613, total=65536, code=24576, eeprom=40960),
        MCUModel(name='STC8F8K32S4A12', magic=0xf614, total=65536, code=32768, eeprom=32768),
        MCUModel(name='STC8F8K40S4A12', magic=0xf615, total=65536, code=40960, eeprom=24576),
        MCUModel(name='STC8F8K48S4A12', magic=0xf616, total=65536, code=49152, eeprom=16384),
        MCUModel(name='STC8F8K56S4A12', magic=0xf617, total=65536, code=57344, eeprom=8192),
        MCUModel(name='STC8F8K60S4A12', magic=0xf619, total=65536, code=61440, eeprom=4096),
        MCUModel(name='STC8F8K64S4A12', magic=0xf618, total=65536, code=65024, eeprom=512),
        MCUModel(name='STC8F2K08S4', magic=0xf631, total=65536, code=8192, eeprom=57344),
        MCUModel(name='STC8F2K16S4', magic=0xf632, total=65536, code=16384, eeprom=49152),
        MCUModel(name='STC8F2K24S4', magic=0xf633, total=65536, code=24576, eeprom=40960),
        MCUModel(name='STC8F2K32S4', magic=0xf634, total=65536, code=32768, eeprom=32768),
        MCUModel(name='STC8F2K40S4', magic=0xf635, total=65536, code=40960, eeprom=24576),
        MCUModel(name='STC8F2K48S4', magic=0xf636, total=65536, code=49152, eeprom=16384),
        MCUModel(name='STC8F2K56S4', magic=0xf637, total=65536, code=57344, eeprom=8192),
        MCUModel(name='STC8F2K60S4', magic=0xf639, total=65536, code=61440, eeprom=4096),
        MCUModel(name='STC8F2K64S4', magic=0xf638, total=65536, code=65024, eeprom=512),
        MCUModel(name='STC8F2K08S2', magic=0xf641, total=65536, code=8192, eeprom=57344),
        MCUModel(name='STC8F2K16S2', magic=0xf642, total=65536, code=16384, eeprom=49152),
        MCUModel(name='STC8F2K24S2', magic=0xf643, total=65536, code=24576, eeprom=40960),
        MCUModel(name='STC8F2K32S2', magic=0xf644, total=65536, code=32768, eeprom=32768),
        MCUModel(name='STC8F2K40S2', magic=0xf645, total=65536, code=40960, eeprom=24576),
        MCUModel(name='STC8F2K48S2', magic=0xf646, total=65536, code=49152, eeprom=16384),
        MCUModel(name='STC8F2K56S2', magic=0xf647, total=65536, code=57344, eeprom=8192),
        MCUModel(name='STC8F2K60S2', magic=0xf649, total=65536, code=61440, eeprom=4096),
        MCUModel(name='STC8F2K64S2', magic=0xf648, total=65536, code=65024, eeprom=512),
        MCUModel(name='STC15H4K08S4', magic=0xf601, total=65536, code=8192, eeprom=57344),
        MCUModel(name='STC15H4K16S4', magic=0xf602, total=65536, code=16384, eeprom=49152),
        MCUModel(name='STC15H4K24S4', magic=0xf603, total=65536, code=24576, eeprom=40960),
        MCUModel(name='STC15H4K32S4', magic=0xf604, total=65536, code=32768, eeprom=32768),
        MCUModel(name='STC15H4K40S4', magic=0xf605, total=65536, code=40960, eeprom=24576),
        MCUModel(name='STC15H4K48S4', magic=0xf606, total=65536, code=49152, eeprom=16384),
        MCUModel(name='STC15H4K56S4', magic=0xf607, total=65536, code=57344, eeprom=8192),
        MCUModel(name='STC15H4K64S4', magic=0xf608, total=65536, code=65024, eeprom=512),
        MCUModel(name='STC15F2K08S2', magic=0xf401, total=65536, code=8192, eeprom=54272),
        MCUModel(name='STC15F2K16S2', magic=0xf402, total=65536, code=16384, eeprom=46080),
        MCUModel(name='STC15F2K24S2', magic=0xf403, total=65536, code=24576, eeprom=37888),
        MCUModel(name='STC15F2K32S2', magic=0xf404, total=65536, code=32768, eeprom=29696),
        MCUModel(name='STC15F2K40S2', magic=0xf405, total=65536, code=40960, eeprom=21504),
        MCUModel(name='STC15F2K48S2', magic=0xf406, total=65536, code=49152, eeprom=13312),
        MCUModel(name='STC15F2K56S2', magic=0xf407, total=65536, code=57344, eeprom=5120),
        MCUModel(name='STC15F2K60S2', magic=0xf408, total=65536, code=61440, eeprom=1024),
        MCUModel(name='IAP15F2K61S2', magic=0xf449, total=65536, code=62464, eeprom=0),
        MCUModel(name='IRC15F2K63S2', magic=0xf44a, total=65536, code=65024, eeprom=0),
        MCUModel(name='STC15L2K08S2', magic=0xf481, total=65536, code=8192, eeprom=54272),
        MCUModel(name='STC15L2K16S2', magic=0xf482, total=65536, code=16384, eeprom=46080),
        MCUModel(name='STC15L2K24S2', magic=0xf483, total=65536, code=24576, eeprom=37888),
        MCUModel(name='STC15L2K32S2', magic=0xf484, total=65536, code=32768, eeprom=29696),
        MCUModel(name='STC15L2K40S2', magic=0xf485, total=65536, code=40960, eeprom=21504),
        MCUModel(name='STC15L2K48S2', magic=0xf486, total=65536, code=49152, eeprom=13312),
        MCUModel(name='STC15L2K56S2', magic=0xf487, total=65536, code=57344, eeprom=5120),
        MCUModel(name='STC15L2K60S2', magic=0xf488, total=65536, code=61440, eeprom=1024),
        MCUModel(name='IAP15L2K61S2', magic=0xf4c9, total=65536, code=62464, eeprom=0),
        MCUModel(name='IRC15L2K63S2', magic=0xf4ca, total=65536, code=65024, eeprom=0),
        MCUModel(name='STC15F2K08AS', magic=0xf411, total=65536, code=8192, eeprom=54272),
        MCUModel(name='STC15F2K16AS', magic=0xf412, total=65536, code=16384, eeprom=46080),
        MCUModel(name='STC15F2K24AS', magic=0xf413, total=65536, code=24576, eeprom=37888),
        MCUModel(name='STC15F2K32AS', magic=0xf414, total=65536, code=32768, eeprom=29696),
        MCUModel(name='STC15F2K40AS', magic=0xf415, total=65536, code=40960, eeprom=21504),
        MCUModel(name='STC15F2K48AS', magic=0xf416, total=65536, code=49152, eeprom=13312),
        MCUModel(name='STC15F2K56AS', magic=0xf417, total=65536, code=57344, eeprom=5120),
        MCUModel(name='STC15F2K60AS', magic=0xf418, total=65536, code=61440, eeprom=1024),
        MCUModel(name='IAP15F2K61AS', magic=0xf459, total=65536, code=62464, eeprom=0),
        MCUModel(name='IRC15F2K63AS', magic=0xf45a, total=65536, code=65024, eeprom=0),
        MCUModel(name='STC15L2K08AS', magic=0xf491, total=65536, code=8192, eeprom=54272),
        MCUModel(name='STC15L2K16AS', magic=0xf492, total=65536, code=16384, eeprom=46080),
        MCUModel(name='STC15L2K24AS', magic=0xf493, total=65536, code=24576, eeprom=37888),
        MCUModel(name='STC15L2K32AS', magic=0xf494, total=65536, code=32768, eeprom=29696),
        MCUModel(name='STC15L2K40AS', magic=0xf495, total=65536, code=40960, eeprom=21504),
        MCUModel(name='STC15L2K48AS', magic=0xf496, total=65536, code=49152, eeprom=13312),
        MCUModel(name='STC15L2K56AS', magic=0xf497, total=65536, code=57344, eeprom=5120),
        MCUModel(name='STC15L2K60AS', magic=0xf498, total=65536, code=61440, eeprom=1024),
        MCUModel(name='IAP15L2K61AS', magic=0xf4d9, total=65536, code=62464, eeprom=0),
        MCUModel(name='IRC15L2K63AS', magic=0xf4da, total=65536, code=65024, eeprom=0),
        MCUModel(name='STC15F2K08S', magic=0xf421, total=65536, code=8192, eeprom=54272),
        MCUModel(name='STC15F2K16S', magic=0xf422, total=65536, code=16384, eeprom=46080),
        MCUModel(name='STC15F2K24S', magic=0xf423, total=65536, code=24576, eeprom=37888),
        MCUModel(name='STC15F2K32S', magic=0xf424, total=65536, code=32768, eeprom=29696),
        MCUModel(name='STC15F2K40S', magic=0xf425, total=65536, code=40960, eeprom=21504),
        MCUModel(name='STC15F2K48S', magic=0xf426, total=65536, code=49152, eeprom=13312),
        MCUModel(name='STC15F2K56S', magic=0xf427, total=65536, code=57344, eeprom=5120),
        MCUModel(name='STC15F2K60S', magic=0xf428, total=65536, code=61440, eeprom=1024),
        MCUModel(name='IAP15F2K61S', magic=0xf469, total=65536, code=62464, eeprom=0),
        MCUModel(name='IRC15F2K63S', magic=0xf46a, total=65536, code=65024, eeprom=0),
        MCUModel(name='STC15L2K08S', magic=0xf4a1, total=65536, code=8192, eeprom=54272),
        MCUModel(name='STC15L2K16S', magic=0xf4a2, total=65536, code=16384, eeprom=46080),
        MCUModel(name='STC15L2K24S', magic=0xf4a3, total=65536, code=24576, eeprom=37888),
        MCUModel(name='STC15L2K32S', magic=0xf4a4, total=65536, code=32768, eeprom=29696),
        MCUModel(name='STC15L2K40S', magic=0xf4a5, total=65536, code=40960, eeprom=21504),
        MCUModel(name='STC15L2K48S', magic=0xf4a6, total=65536, code=49152, eeprom=13312),
        MCUModel(name='STC15L2K56S', magic=0xf4a7, total=65536, code=57344, eeprom=5120),
        MCUModel(name='STC15L2K60S', magic=0xf4a8, total=65536, code=61440, eeprom=1024),
        MCUModel(name='IAP15L2K61S', magic=0xf4e9, total=65536, code=62464, eeprom=0),
        MCUModel(name='IRC15L2K63S', magic=0xf4ea, total=65536, code=65024, eeprom=0),
        MCUModel(name='U7-5V', magic=0xf44b, total=65536, code=62464, eeprom=0),
        MCUModel(name='U7-3V', magic=0xf4cb, total=65536, code=62464, eeprom=0),
        MCUModel(name='U8-5V', magic=0xf44c, total=65536, code=62464, eeprom=0),
        MCUModel(name='U8-3V', magic=0xf4cc, total=65536, code=62464, eeprom=0),
        MCUModel(name='STC15F1K08S2', magic=0xf441, total=65536, code=8192, eeprom=54272),
        MCUModel(name='STC15F1K16S2', magic=0xf442, total=65536, code=16384, eeprom=46080),
        MCUModel(name='STC15F1K24S2', magic=0xf443, total=65536, code=24576, eeprom=37888),
        MCUModel(name='STC15F1K32S2', magic=0xf444, total=65536, code=32768, eeprom=29696),
        MCUModel(name='STC15F1K40S2', magic=0xf445, total=65536, code=40960, eeprom=21504),
        MCUModel(name='STC15F1K48S2', magic=0xf446, total=65536, code=49152, eeprom=13312),
        MCUModel(name='STC15F1K56S2', magic=0xf447, total=65536, code=57344, eeprom=5120),
        MCUModel(name='STC15F1K60S2', magic=0xf448, total=65536, code=61440, eeprom=1024),
        MCUModel(name='IAP15F1K61S2', magic=0xf409, total=65536, code=62464, eeprom=0),
        MCUModel(name='IRC15F1K63S2', magic=0xf400, total=65536, code=65024, eeprom=0),
        MCUModel(name='STC15L1K08S2', magic=0xf4c1, total=65536, code=8192, eeprom=54272),
        MCUModel(name='STC15L1K16S2', magic=0xf4c2, total=65536, code=16384, eeprom=46080),
        MCUModel(name='STC15L1K24S2', magic=0xf4c3, total=65536, code=24576, eeprom=37888),
        MCUModel(name='STC15L1K32S2', magic=0xf4c4, total=65536, code=32768, eeprom=29696),
        MCUModel(name='STC15L1K40S2', magic=0xf4c5, total=65536, code=40960, eeprom=21504),
        MCUModel(name='STC15L1K48S2', magic=0xf4c6, total=65536, code=49152, eeprom=13312),
        MCUModel(name='STC15L1K56S2', magic=0xf4c7, total=65536, code=57344, eeprom=5120),
        MCUModel(name='STC15L1K60S2', magic=0xf4c8, total=65536, code=61440, eeprom=1024),
        MCUModel(name='IAP15L1K61S2', magic=0xf489, total=65536, code=62464, eeprom=0),
        MCUModel(name='IRC15L1K63S2', magic=0xf480, total=65536, code=65024, eeprom=0),
        MCUModel(name='STC15F1K08AS', magic=0xf451, total=65536, code=8192, eeprom=54272),
        MCUModel(name='STC15F1K16AS', magic=0xf452, total=65536, code=16384, eeprom=46080),
        MCUModel(name='STC15F1K24AS', magic=0xf453, total=65536, code=24576, eeprom=37888),
        MCUModel(name='STC15F1K32AS', magic=0xf454, total=65536, code=32768, eeprom=29696),
        MCUModel(name='STC15F1K40AS', magic=0xf455, total=65536, code=40960, eeprom=21504),
        MCUModel(name='STC15F1K48AS', magic=0xf456, total=65536, code=49152, eeprom=13312),
        MCUModel(name='STC15F1K56AS', magic=0xf457, total=65536, code=57344, eeprom=5120),
        MCUModel(name='STC15F1K60AS', magic=0xf458, total=65536, code=61440, eeprom=1024),
        MCUModel(name='IAP15F1K61AS', magic=0xf419, total=65536, code=62464, eeprom=0),
        MCUModel(name='IRC15F1K63AS', magic=0xf410, total=65536, code=65024, eeprom=0),
        MCUModel(name='STC15L1K08AS', magic=0xf4d1, total=65536, code=8192, eeprom=54272),
        MCUModel(name='STC15L1K16AS', magic=0xf4d2, total=65536, code=16384, eeprom=46080),
        MCUModel(name='STC15L1K24AS', magic=0xf4d3, total=65536, code=24576, eeprom=37888),
        MCUModel(name='STC15L1K32AS', magic=0xf4d4, total=65536, code=32768, eeprom=29696),
        MCUModel(name='STC15L1K40AS', magic=0xf4d5, total=65536, code=40960, eeprom=21504),
        MCUModel(name='STC15L1K48AS', magic=0xf4d6, total=65536, code=49152, eeprom=13312),
        MCUModel(name='STC15L1K56AS', magic=0xf4d7, total=65536, code=57344, eeprom=5120),
        MCUModel(name='STC15L1K60AS', magic=0xf4d8, total=65536, code=61440, eeprom=1024),
        MCUModel(name='IAP15L1K61AS', magic=0xf499, total=65536, code=62464, eeprom=0),
        MCUModel(name='IRC15L1K63AS', magic=0xf490, total=65536, code=65024, eeprom=0),
        MCUModel(name='STC15F1K08S', magic=0xf461, total=65536, code=8192, eeprom=54272),
        MCUModel(name='STC15F1K16S', magic=0xf462, total=65536, code=16384, eeprom=46080),
        MCUModel(name='STC15F1K24S', magic=0xf463, total=65536, code=24576, eeprom=37888),
        MCUModel(name='STC15F1K32S', magic=0xf464, total=65536, code=32768, eeprom=29696),
        MCUModel(name='STC15F1K40S', magic=0xf465, total=65536, code=40960, eeprom=21504),
        MCUModel(name='STC15F1K48S', magic=0xf466, total=65536, code=49152, eeprom=13312),
        MCUModel(name='STC15F1K56S', magic=0xf467, total=65536, code=57344, eeprom=5120),
        MCUModel(name='STC15F1K60S', magic=0xf468, total=65536, code=61440, eeprom=1024),
        MCUModel(name='IAP15F1K61S', magic=0xf429, total=65536, code=62464, eeprom=0),
        MCUModel(name='IRC15F1K63S', magic=0xf420, total=65536, code=65024, eeprom=0),
        MCUModel(name='STC15L1K08S', magic=0xf4e1, total=65536, code=8192, eeprom=54272),
        MCUModel(name='STC15L1K16S', magic=0xf4e2, total=65536, code=16384, eeprom=46080),
        MCUModel(name='STC15L1K24S', magic=0xf4e3, total=65536, code=24576, eeprom=37888),
        MCUModel(name='STC15L1K32S', magic=0xf4e4, total=65536, code=32768, eeprom=29696),
        MCUModel(name='STC15L1K40S', magic=0xf4e5, total=65536, code=40960, eeprom=21504),
        MCUModel(name='STC15L1K48S', magic=0xf4e6, total=65536, code=49152, eeprom=13312),
        MCUModel(name='STC15L1K56S', magic=0xf4e7, total=65536, code=57344, eeprom=5120),
        MCUModel(name='STC15L1K60S', magic=0xf4e8, total=65536, code=61440, eeprom=1024),
        MCUModel(name='IAP15L1K61S', magic=0xf4a9, total=65536, code=62464, eeprom=0),
        MCUModel(name='IRC15L1K63S', magic=0xf4a0, total=65536, code=65024, eeprom=0),
        MCUModel(name='STC15F404AD', magic=0xf40a, total=65536, code=4096, eeprom=9216),
        MCUModel(name='STC15F408AD', magic=0xf40b, total=65536, code=8192, eeprom=5120),
        MCUModel(name='STC15F412AD', magic=0xf40c, total=65536, code=12288, eeprom=1024),
        MCUModel(name='IAP15F413AD', magic=0xf44d, total=65536, code=13312, eeprom=0),
        MCUModel(name='STC15L404AD', magic=0xf48a, total=65536, code=4096, eeprom=9216),
        MCUModel(name='STC15L408AD', magic=0xf48b, total=65536, code=8192, eeprom=5120),
        MCUModel(name='STC15L412AD', magic=0xf48c, total=65536, code=12288, eeprom=1024),
        MCUModel(name='IAP15L413AD', magic=0xf4cd, total=65536, code=13312, eeprom=0),
        MCUModel(name='STC15W101SW', magic=0xf501, total=8192, code=1024, eeprom=4096),
        MCUModel(name='STC15W102SW', magic=0xf502, total=8192, code=2048, eeprom=3072),
        MCUModel(name='STC15W103SW', magic=0xf503, total=8192, code=3072, eeprom=2048),
        MCUModel(name='STC15W104SW', magic=0xf504, total=8192, code=4096, eeprom=1024),
        MCUModel(name='IAP15W105SW', magic=0xf545, total=8192, code=5120, eeprom=0),
        MCUModel(name='STC15W101S', magic=0xf508, total=8192, code=1024, eeprom=4096),
        MCUModel(name='STC15W102S', magic=0xf50a, total=8192, code=2048, eeprom=3072),
        MCUModel(name='STC15W103S', magic=0xf50b, total=8192, code=3072, eeprom=2048),
        MCUModel(name='STC15W104S', magic=0xf50c, total=8192, code=4096, eeprom=1024),
        MCUModel(name='IAP15W105S', magic=0xf54d, total=8192, code=5120, eeprom=0),
        MCUModel(name='STC15W201S', magic=0xf511, total=8192, code=1024, eeprom=4096),
        MCUModel(name='STC15W202S', magic=0xf512, total=8192, code=2048, eeprom=3072),
        MCUModel(name='STC15W203S', magic=0xf513, total=8192, code=3072, eeprom=2048),
        MCUModel(name='STC15W204S', magic=0xf514, total=8192, code=4096, eeprom=1024),
        MCUModel(name='IAP15W205S', magic=0xf555, total=8192, code=5120, eeprom=0),
        MCUModel(name='IRC15W207S', magic=0xf556, total=8192, code=7680, eeprom=0),
        MCUModel(name='STC15W1K16S', magic=0xf516, total=32768, code=16384, eeprom=13312),
        MCUModel(name='STC15W1K24S', magic=0xf517, total=32768, code=24576, eeprom=5120),
        MCUModel(name='IAP15W1K29S', magic=0xf558, total=32768, code=29696, eeprom=0),
        MCUModel(name='IRC15W1K31S', magic=0xf559, total=32768, code=32256, eeprom=0),
        MCUModel(name='STC15W404S', magic=0xf519, total=16384, code=4096, eeprom=9216),
        MCUModel(name='STC15W408S', magic=0xf51a, total=16384, code=8192, eeprom=5120),
        MCUModel(name='STC15W410S', magic=0xf51b, total=16384, code=10240, eeprom=3072),
        MCUModel(name='STC15W412S', magic=0xf51c, total=16384, code=12288, eeprom=1024),
        MCUModel(name='IAP15W413S', magic=0xf55d, total=16384, code=13312, eeprom=0),
        MCUModel(name='IRC15W415S', magic=0xf55e, total=16384, code=15872, eeprom=0),
        MCUModel(name='JX15W415S', magic=0xf55f, total=16384, code=15872, eeprom=0),
        MCUModel(name='STC15W401AS', magic=0xf52a, total=16384, code=1024, eeprom=12288),
        MCUModel(name='STC15W402AS', magic=0xf52b, total=16384, code=2048, eeprom=11264),
        MCUModel(name='STC15W404AS', magic=0xf51e, total=16384, code=4096, eeprom=9216),
        MCUModel(name='STC15W408AS', magic=0xf51f, total=16384, code=8192, eeprom=5120),
        MCUModel(name='STC15W410AS', magic=0xf520, total=16384, code=10240, eeprom=3072),
        MCUModel(name='STC15W412AS', magic=0xf521, total=16384, code=12288, eeprom=1024),
        MCUModel(name='IAP15W413AS', magic=0xf562, total=16384, code=13312, eeprom=0),
        MCUModel(name='IRC15W415AS', magic=0xf563, total=16384, code=15872, eeprom=0),
        MCUModel(name='STC15W1K08PWM', magic=0xf52d, total=65536, code=8192, eeprom=52224),
        MCUModel(name='STC15W1K16PWM', magic=0xf52e, total=65536, code=16384, eeprom=44032),
        MCUModel(name='STC15W1K20S', magic=0xf52f, total=65536, code=20480, eeprom=39936),
        MCUModel(name='STC15W1K20AS', magic=0xf534, total=65536, code=20480, eeprom=39936),
        MCUModel(name='STC15W1K32AS', magic=0xf535, total=65536, code=32768, eeprom=27648),
        MCUModel(name='STC15W1K48AS', magic=0xf536, total=65536, code=49152, eeprom=11264),
        MCUModel(name='STC15W2K32S2', magic=0xf530, total=65536, code=32768, eeprom=27648),
        MCUModel(name='STC15W2K48S2', magic=0xf531, total=65536, code=49152, eeprom=11264),
        MCUModel(name='STC15W2K32AS', magic=0xf532, total=65536, code=32768, eeprom=27648),
        MCUModel(name='STC15W2K48AS', magic=0xf533, total=65536, code=49152, eeprom=11264),
        MCUModel(name='STC15W4K16S4', magic=0xf523, total=65536, code=16384, eeprom=44032),
        MCUModel(name='STC15W4K24S4', magic=0xf524, total=65536, code=24576, eeprom=35840),
        MCUModel(name='STC15W4K32S4', magic=0xf525, total=65536, code=32768, eeprom=27648),
        MCUModel(name='STC15W4K40S4', magic=0xf526, total=65536, code=40960, eeprom=19456),
        MCUModel(name='STC15W4K48S4', magic=0xf527, total=65536, code=49152, eeprom=11264),
        MCUModel(name='STC15W4K56S4', magic=0xf528, total=65536, code=57344, eeprom=3072),
        MCUModel(name='IAP15W4K58S4', magic=0xf569, total=65536, code=59392, eeprom=0),
        MCUModel(name='IAP15W4K58S4-Stu', magic=0xf56d, total=65536, code=59392, eeprom=0),
        MCUModel(name='IAP15W4K61S4', magic=0xf56a, total=65536, code=62464, eeprom=0),
        MCUModel(name='IRC15W4K63S4', magic=0xf56b, total=65536, code=65024, eeprom=0),
        MCUModel(name='U8W', magic=0xf56c, total=65536, code=62464, eeprom=0),
        MCUModel(name='STC15W100', magic=0xf2a0, total=8192, code=512, eeprom=0),
        MCUModel(name='STC15W101', magic=0xf2a1, total=8192, code=1024, eeprom=4096),
        MCUModel(name='STC15W102', magic=0xf2a2, total=8192, code=2048, eeprom=3072),
        MCUModel(name='STC15W103', magic=0xf2a3, total=8192, code=3072, eeprom=2048),
        MCUModel(name='STC15W104', magic=0xf2a4, total=8192, code=4096, eeprom=1024),
        MCUModel(name='IAP15W105', magic=0xf2a5, total=8192, code=5120, eeprom=0),
        MCUModel(name='IRC15W107', magic=0xf2a6, total=8192, code=7168, eeprom=0),
        MCUModel(name='STC15F100W', magic=0xf290, total=8192, code=512, eeprom=0),
        MCUModel(name='STC15F101W', magic=0xf291, total=8192, code=1024, eeprom=4096),
        MCUModel(name='STC15F102W', magic=0xf292, total=8192, code=2048, eeprom=3072),
        MCUModel(name='STC15F103W', magic=0xf293, total=8192, code=3072, eeprom=2048),
        MCUModel(name='STC15F104W', magic=0xf294, total=8192, code=4096, eeprom=1024),
        MCUModel(name='IAP15F105W', magic=0xf2b5, total=8192, code=5120, eeprom=0),
        MCUModel(name='IRC15F107W', magic=0xf2b6, total=8192, code=7168, eeprom=0),
        MCUModel(name='STC15F100', magic=0xf298, total=8192, code=512, eeprom=0),
        MCUModel(name='STC15F101', magic=0xf299, total=8192, code=1024, eeprom=4096),
        MCUModel(name='STC15F102', magic=0xf29a, total=8192, code=2048, eeprom=3072),
        MCUModel(name='STC15F103', magic=0xf29b, total=8192, code=3072, eeprom=2048),
        MCUModel(name='STC15F104', magic=0xf29c, total=8192, code=4096, eeprom=1024),
        MCUModel(name='IAP15F105', magic=0xf2bd, total=8192, code=5120, eeprom=0),
        MCUModel(name='IRC15F107', magic=0xf2be, total=8192, code=7168, eeprom=0),
        MCUModel(name='STC15L100W', magic=0xf2d0, total=8192, code=512, eeprom=0),
        MCUModel(name='STC15L101W', magic=0xf2d1, total=8192, code=1024, eeprom=4096),
        MCUModel(name='STC15L102W', magic=0xf2d2, total=8192, code=2048, eeprom=3072),
        MCUModel(name='STC15L103W', magic=0xf2d3, total=8192, code=3072, eeprom=2048),
        MCUModel(name='STC15L104W', magic=0xf2d4, total=8192, code=4096, eeprom=1024),
        MCUModel(name='IAP15L105W', magic=0xf2f5, total=8192, code=5120, eeprom=0),
        MCUModel(name='IRC15L107W', magic=0xf2f6, total=8192, code=7168, eeprom=0),
        MCUModel(name='STC15L100', magic=0xf2d8, total=8192, code=512, eeprom=0),
        MCUModel(name='STC15L101', magic=0xf2d9, total=8192, code=1024, eeprom=4096),
        MCUModel(name='STC15L102', magic=0xf2da, total=8192, code=2048, eeprom=3072),
        MCUModel(name='STC15L103', magic=0xf2db, total=8192, code=3072, eeprom=2048),
        MCUModel(name='STC15L104', magic=0xf2dc, total=8192, code=4096, eeprom=1024),
        MCUModel(name='IAP15L105', magic=0xf2fd, total=8192, code=5120, eeprom=0),
        MCUModel(name='IRC15L107', magic=0xf2fe, total=8192, code=7168, eeprom=0),
        MCUModel(name='STC15F104E', magic=0xf294, total=8192, code=4096, eeprom=1024),
        MCUModel(name='STC15L104E', magic=0xf2d4, total=8192, code=4096, eeprom=1024),
        MCUModel(name='STC15F204EA', magic=0xf394, total=8192, code=4096, eeprom=1024),
        MCUModel(name='IAP15F205EA', magic=0xf3b5, total=8192, code=5120, eeprom=0),
        MCUModel(name='IRC15F207A', magic=0xf3b6, total=8192, code=7168, eeprom=0),
        MCUModel(name='STC15L204EA', magic=0xf3d4, total=8192, code=4096, eeprom=1024),
        MCUModel(name='IAP15L205EA', magic=0xf3f5, total=8192, code=5120, eeprom=0),
        MCUModel(name='IRC15L207A', magic=0xf3f6, total=8192, code=7168, eeprom=0),
        MCUModel(name='STC12C5A08S2', magic=0xd164, total=65536, code=8192, eeprom=55296),
        MCUModel(name='STC12C5A16S2', magic=0xd168, total=65536, code=16384, eeprom=47104),
        MCUModel(name='STC12C5A32S2', magic=0xd170, total=65536, code=32768, eeprom=30720),
        MCUModel(name='STC12C5A40S2', magic=0xd174, total=65536, code=40960, eeprom=22528),
        MCUModel(name='STC12C5A48S2', magic=0xd178, total=65536, code=49152, eeprom=14336),
        MCUModel(name='STC12C5A52S2', magic=0xd17a, total=65536, code=53248, eeprom=10240),
        MCUModel(name='STC12C5A56S2', magic=0xd17c, total=65536, code=57344, eeprom=6144),
        MCUModel(name='STC12C5A60S2', magic=0xd17e, total=65536, code=61440, eeprom=2048),
        MCUModel(name='STC12C5A08AD', magic=0xd144, total=65536, code=8192, eeprom=55296),
        MCUModel(name='STC12C5A16AD', magic=0xd148, total=65536, code=16384, eeprom=47104),
        MCUModel(name='STC12C5A32AD', magic=0xd150, total=65536, code=32768, eeprom=30720),
        MCUModel(name='STC12C5A40AD', magic=0xd154, total=65536, code=40960, eeprom=22528),
        MCUModel(name='STC12C5A48AD', magic=0xd158, total=65536, code=49152, eeprom=14336),
        MCUModel(name='STC12C5A52AD', magic=0xd15a, total=65536, code=53248, eeprom=10240),
        MCUModel(name='STC12C5A56AD', magic=0xd15c, total=65536, code=57344, eeprom=6144),
        MCUModel(name='STC12C5A60AD', magic=0xd15e, total=65536, code=61440, eeprom=2048),
        MCUModel(name='STC12C5A08CCP', magic=0xd124, total=65536, code=8192, eeprom=55296),
        MCUModel(name='STC12C5A16CCP', magic=0xd128, total=65536, code=16384, eeprom=47104),
        MCUModel(name='STC12C5A32CCP', magic=0xd130, total=65536, code=32768, eeprom=30720),
        MCUModel(name='STC12C5A40CCP', magic=0xd134, total=65536, code=40960, eeprom=22528),
        MCUModel(name='STC12C5A48CCP', magic=0xd138, total=65536, code=49152, eeprom=14336),
        MCUModel(name='STC12C5A52CCP', magic=0xd13a, total=65536, code=53248, eeprom=10240),
        MCUModel(name='STC12C5A56CCP', magic=0xd13c, total=65536, code=57344, eeprom=6144),
        MCUModel(name='STC12C5A60CCP', magic=0xd13e, total=65536, code=61440, eeprom=2048),
        MCUModel(name='STC12C5A08X', magic=0xd104, total=65536, code=8192, eeprom=0),
        MCUModel(name='STC12C5A16X', magic=0xd108, total=65536, code=16384, eeprom=0),
        MCUModel(name='STC12C5A32X', magic=0xd110, total=65536, code=32768, eeprom=0),
        MCUModel(name='STC12C5A40X', magic=0xd114, total=65536, code=40960, eeprom=0),
        MCUModel(name='STC12C5A48X', magic=0xd118, total=65536, code=49152, eeprom=0),
        MCUModel(name='STC12C5A52X', magic=0xd11a, total=65536, code=53248, eeprom=0),
        MCUModel(name='STC12C5A56X', magic=0xd11c, total=65536, code=57344, eeprom=0),
        MCUModel(name='STC12C5A60X', magic=0xd11e, total=65536, code=61440, eeprom=0),
        MCUModel(name='IAP12C5A08S2', magic=0xd163, total=65536, code=8192, eeprom=0),
        MCUModel(name='IAP12C5A16S2', magic=0xd167, total=65536, code=16384, eeprom=0),
        MCUModel(name='IAP12C5A32S2', magic=0xd16f, total=65536, code=32768, eeprom=0),
        MCUModel(name='IAP12C5A40S2', magic=0xd173, total=65536, code=40960, eeprom=0),
        MCUModel(name='IAP12C5A48S2', magic=0xd177, total=65536, code=49152, eeprom=0),
        MCUModel(name='IAP12C5A52S2', magic=0xd179, total=65536, code=53248, eeprom=0),
        MCUModel(name='IAP12C5A56S2', magic=0xd17b, total=65536, code=57344, eeprom=0),
        MCUModel(name='IAP12C5A60S2', magic=0xd17d, total=65536, code=61440, eeprom=0),
        MCUModel(name='IAP12C5A62S2', magic=0xd17f, total=65536, code=63488, eeprom=0),
        MCUModel(name='IAP12C5A08AD', magic=0xd143, total=65536, code=8192, eeprom=0),
        MCUModel(name='IAP12C5A16AD', magic=0xd147, total=65536, code=16384, eeprom=0),
        MCUModel(name='IAP12C5A32AD', magic=0xd14f, total=65536, code=32768, eeprom=0),
        MCUModel(name='IAP12C5A40AD', magic=0xd153, total=65536, code=40960, eeprom=0),
        MCUModel(name='IAP12C5A48AD', magic=0xd157, total=65536, code=49152, eeprom=0),
        MCUModel(name='IAP12C5A52AD', magic=0xd159, total=65536, code=53248, eeprom=0),
        MCUModel(name='IAP12C5A56AD', magic=0xd15b, total=65536, code=57344, eeprom=0),
        MCUModel(name='IAP12C5A60AD', magic=0xd15d, total=65536, code=61440, eeprom=0),
        MCUModel(name='IAP12C5A62AD', magic=0xd15f, total=65536, code=63488, eeprom=0),
        MCUModel(name='IAP12C5A08CCP', magic=0xd123, total=65536, code=8192, eeprom=0),
        MCUModel(name='IAP12C5A16CCP', magic=0xd127, total=65536, code=16384, eeprom=0),
        MCUModel(name='IAP12C5A32CCP', magic=0xd12f, total=65536, code=32768, eeprom=0),
        MCUModel(name='IAP12C5A40CCP', magic=0xd133, total=65536, code=40960, eeprom=0),
        MCUModel(name='IAP12C5A48CCP', magic=0xd137, total=65536, code=49152, eeprom=0),
        MCUModel(name='IAP12C5A52CCP', magic=0xd139, total=65536, code=53248, eeprom=0),
        MCUModel(name='IAP12C5A56CCP', magic=0xd13b, total=65536, code=57344, eeprom=0),
        MCUModel(name='IAP12C5A60CCP', magic=0xd13d, total=65536, code=61440, eeprom=0),
        MCUModel(name='IAP12C5A62CCP', magic=0xd13f, total=65536, code=63488, eeprom=0),
        MCUModel(name='IAP12C5A08', magic=0xd103, total=65536, code=8192, eeprom=0),
        MCUModel(name='IAP12C5A16', magic=0xd107, total=65536, code=16384, eeprom=0),
        MCUModel(name='IAP12C5A32', magic=0xd10f, total=65536, code=32768, eeprom=0),
        MCUModel(name='IAP12C5A40', magic=0xd113, total=65536, code=40960, eeprom=0),
        MCUModel(name='IAP12C5A48', magic=0xd117, total=65536, code=49152, eeprom=0),
        MCUModel(name='IAP12C5A52', magic=0xd119, total=65536, code=53248, eeprom=0),
        MCUModel(name='IAP12C5A56', magic=0xd11b, total=65536, code=57344, eeprom=0),
        MCUModel(name='IAP12C5A60', magic=0xd11d, total=65536, code=61440, eeprom=0),
        MCUModel(name='IAP12C5A62', magic=0xd11f, total=65536, code=63488, eeprom=0),
        MCUModel(name='STC12LE5A08S2', magic=0xd1e4, total=65536, code=8192, eeprom=55296),
        MCUModel(name='STC12LE5A16S2', magic=0xd1e8, total=65536, code=16384, eeprom=47104),
        MCUModel(name='STC12LE5A32S2', magic=0xd1f0, total=65536, code=32768, eeprom=30720),
        MCUModel(name='STC12LE5A40S2', magic=0xd1f4, total=65536, code=40960, eeprom=22528),
        MCUModel(name='STC12LE5A48S2', magic=0xd1f8, total=65536, code=49152, eeprom=14336),
        MCUModel(name='STC12LE5A52S2', magic=0xd1fa, total=65536, code=53248, eeprom=10240),
        MCUModel(name='STC12LE5A56S2', magic=0xd1fc, total=65536, code=57344, eeprom=6144),
        MCUModel(name='STC12LE5A60S2', magic=0xd1fe, total=65536, code=61440, eeprom=2048),
        MCUModel(name='STC12LE5A08AD', magic=0xd1c4, total=65536, code=8192, eeprom=55296),
        MCUModel(name='STC12LE5A16AD', magic=0xd1c8, total=65536, code=16384, eeprom=47104),
        MCUModel(name='STC12LE5A32AD', magic=0xd1d0, total=65536, code=32768, eeprom=30720),
        MCUModel(name='STC12LE5A40AD', magic=0xd1d4, total=65536, code=40960, eeprom=22528),
        MCUModel(name='STC12LE5A48AD', magic=0xd1d8, total=65536, code=49152, eeprom=14336),
        MCUModel(name='STC12LE5A52AD', magic=0xd1da, total=65536, code=53248, eeprom=10240),
        MCUModel(name='STC12LE5A56AD', magic=0xd1dc, total=65536, code=57344, eeprom=6144),
        MCUModel(name='STC12LE5A60AD', magic=0xd1de, total=65536, code=61440, eeprom=2048),
        MCUModel(name='STC12LE5A08CCP', magic=0xd1a4, total=65536, code=8192, eeprom=55296),
        MCUModel(name='STC12LE5A16CCP', magic=0xd1a8, total=65536, code=16384, eeprom=47104),
        MCUModel(name='STC12LE5A32CCP', magic=0xd1b0, total=65536, code=32768, eeprom=30720),
        MCUModel(name='STC12LE5A40CCP', magic=0xd1b4, total=65536, code=40960, eeprom=22528),
        MCUModel(name='STC12LE5A48CCP', magic=0xd1b8, total=65536, code=49152, eeprom=14336),
        MCUModel(name='STC12LE5A52CCP', magic=0xd1ba, total=65536, code=53248, eeprom=10240),
        MCUModel(name='STC12LE5A56CCP', magic=0xd1bc, total=65536, code=57344, eeprom=6144),
        MCUModel(name='STC12LE5A60CCP', magic=0xd1be, total=65536, code=61440, eeprom=2048),
        MCUModel(name='STC12LE5A08X', magic=0xd184, total=65536, code=8192, eeprom=0),
        MCUModel(name='STC12LE5A16X', magic=0xd188, total=65536, code=16384, eeprom=0),
        MCUModel(name='STC12LE5A32X', magic=0xd190, total=65536, code=32768, eeprom=0),
        MCUModel(name='STC12LE5A40X', magic=0xd194, total=65536, code=40960, eeprom=0),
        MCUModel(name='STC12LE5A48X', magic=0xd198, total=65536, code=49152, eeprom=0),
        MCUModel(name='STC12LE5A52X', magic=0xd19a, total=65536, code=53248, eeprom=0),
        MCUModel(name='STC12LE5A56X', magic=0xd19c, total=65536, code=57344, eeprom=0),
        MCUModel(name='STC12LE5A60X', magic=0xd19e, total=65536, code=61440, eeprom=0),
        MCUModel(name='IAP12LE5A08S2', magic=0xd1e3, total=65536, code=8192, eeprom=0),
        MCUModel(name='IAP12LE5A16S2', magic=0xd1e7, total=65536, code=16384, eeprom=0),
        MCUModel(name='IAP12LE5A32S2', magic=0xd1ef, total=65536, code=32768, eeprom=0),
        MCUModel(name='IAP12LE5A40S2', magic=0xd1f3, total=65536, code=40960, eeprom=0),
        MCUModel(name='IAP12LE5A48S2', magic=0xd1f7, total=65536, code=49152, eeprom=0),
        MCUModel(name='IAP12LE5A52S2', magic=0xd1f9, total=65536, code=53248, eeprom=0),
        MCUModel(name='IAP12LE5A56S2', magic=0xd1fb, total=65536, code=57344, eeprom=0),
        MCUModel(name='IAP12LE5A60S2', magic=0xd1fd, total=65536, code=61440, eeprom=0),
        MCUModel(name='IAP12LE5A62S2', magic=0xd1ff, total=65536, code=63488, eeprom=0),
        MCUModel(name='IAP12LE5A08AD', magic=0xd1c3, total=65536, code=8192, eeprom=0),
        MCUModel(name='IAP12LE5A16AD', magic=0xd1c7, total=65536, code=16384, eeprom=0),
        MCUModel(name='IAP12LE5A32AD', magic=0xd1cf, total=65536, code=32768, eeprom=0),
        MCUModel(name='IAP12LE5A40AD', magic=0xd1d3, total=65536, code=40960, eeprom=0),
        MCUModel(name='IAP12LE5A48AD', magic=0xd1d7, total=65536, code=49152, eeprom=0),
        MCUModel(name='IAP12LE5A52AD', magic=0xd1d9, total=65536, code=53248, eeprom=0),
        MCUModel(name='IAP12LE5A56AD', magic=0xd1db, total=65536, code=57344, eeprom=0),
        MCUModel(name='IAP12LE5A60AD', magic=0xd1dd, total=65536, code=61440, eeprom=0),
        MCUModel(name='IAP12LE5A62AD', magic=0xd1df, total=65536, code=63488, eeprom=0),
        MCUModel(name='IAP12LE5A08CCP', magic=0xd1a3, total=65536, code=8192, eeprom=0),
        MCUModel(name='IAP12LE5A16CCP', magic=0xd1a7, total=65536, code=16384, eeprom=0),
        MCUModel(name='IAP12LE5A32CCP', magic=0xd1af, total=65536, code=32768, eeprom=0),
        MCUModel(name='IAP12LE5A40CCP', magic=0xd1b3, total=65536, code=40960, eeprom=0),
        MCUModel(name='IAP12LE5A48CCP', magic=0xd1b7, total=65536, code=49152, eeprom=0),
        MCUModel(name='IAP12LE5A52CCP', magic=0xd1b9, total=65536, code=53248, eeprom=0),
        MCUModel(name='IAP12LE5A56CCP', magic=0xd1bb, total=65536, code=57344, eeprom=0),
        MCUModel(name='IAP12LE5A60CCP', magic=0xd1bd, total=65536, code=61440, eeprom=0),
        MCUModel(name='IAP12LE5A62CCP', magic=0xd1bf, total=65536, code=63488, eeprom=0),
        MCUModel(name='IAP12LE5A08', magic=0xd183, total=65536, code=8192, eeprom=0),
        MCUModel(name='IAP12LE5A16', magic=0xd187, total=65536, code=16384, eeprom=0),
        MCUModel(name='IAP12LE5A32', magic=0xd18f, total=65536, code=32768, eeprom=0),
        MCUModel(name='IAP12LE5A40', magic=0xd193, total=65536, code=40960, eeprom=0),
        MCUModel(name='IAP12LE5A48', magic=0xd197, total=65536, code=49152, eeprom=0),
        MCUModel(name='IAP12LE5A52', magic=0xd199, total=65536, code=53248, eeprom=0),
        MCUModel(name='IAP12LE5A56', magic=0xd19b, total=65536, code=57344, eeprom=0),
        MCUModel(name='IAP12LE5A60', magic=0xd19d, total=65536, code=61440, eeprom=0),
        MCUModel(name='IAP12LE5A62', magic=0xd19f, total=65536, code=63488, eeprom=0),
        MCUModel(name='STC5A08S2-5V', magic=0xd160, total=65536, code=8192, eeprom=55296),
        MCUModel(name='STC5A16S2-5V', magic=0xd161, total=65536, code=16384, eeprom=47104),
        MCUModel(name='STC5A32S2-5V', magic=0xd162, total=65536, code=32768, eeprom=30720),
        MCUModel(name='STC5A40S2-5V', magic=0xd165, total=65536, code=40960, eeprom=22528),
        MCUModel(name='STC5A48S2-5V', magic=0xd166, total=65536, code=49152, eeprom=14336),
        MCUModel(name='STC5A52S2-5V', magic=0xd169, total=65536, code=53248, eeprom=10240),
        MCUModel(name='STC5A56S2-5V', magic=0xd16a, total=65536, code=57344, eeprom=6144),
        MCUModel(name='STC5A60S2-5V', magic=0xd16b, total=65536, code=61440, eeprom=2048),
        MCUModel(name='IAP5A62S2-5V', magic=0xd16c, total=65536, code=63488, eeprom=0),
        MCUModel(name='STC5A08S2-3V', magic=0xd1e0, total=65536, code=8192, eeprom=55296),
        MCUModel(name='STC5A16S2-3V', magic=0xd1e1, total=65536, code=16384, eeprom=47104),
        MCUModel(name='STC5A32S2-3V', magic=0xd1e2, total=65536, code=32768, eeprom=30720),
        MCUModel(name='STC5A40S2-3V', magic=0xd1e5, total=65536, code=40960, eeprom=22528),
        MCUModel(name='STC5A48S2-3V', magic=0xd1e6, total=65536, code=49152, eeprom=14336),
        MCUModel(name='STC5A52S2-3V', magic=0xd1e9, total=65536, code=53248, eeprom=10240),
        MCUModel(name='STC5A56S2-3V', magic=0xd1ea, total=65536, code=57344, eeprom=6144),
        MCUModel(name='STC5A60S2-3V', magic=0xd1eb, total=65536, code=61440, eeprom=2048),
        MCUModel(name='IAP5A62S2-3V', magic=0xd1ec, total=65536, code=63488, eeprom=0),
        MCUModel(name='STC10F02XE', magic=0xd262, total=16384, code=2048, eeprom=12288),
        MCUModel(name='STC10F04XE', magic=0xd264, total=16384, code=4096, eeprom=10240),
        MCUModel(name='STC10F06XE', magic=0xd266, total=16384, code=6144, eeprom=8192),
        MCUModel(name='STC10F08XE', magic=0xd268, total=16384, code=8192, eeprom=6144),
        MCUModel(name='STC10F10XE', magic=0xd26a, total=16384, code=10240, eeprom=4096),
        MCUModel(name='STC10F12XE', magic=0xd26c, total=16384, code=12288, eeprom=2048),
        MCUModel(name='STC10F02X', magic=0xd242, total=16384, code=2048, eeprom=0),
        MCUModel(name='STC10F04X', magic=0xd244, total=16384, code=4096, eeprom=0),
        MCUModel(name='STC10F06X', magic=0xd246, total=16384, code=6144, eeprom=0),
        MCUModel(name='STC10F08X', magic=0xd248, total=16384, code=8192, eeprom=0),
        MCUModel(name='STC10F10X', magic=0xd24a, total=16384, code=10240, eeprom=0),
        MCUModel(name='STC10F12X', magic=0xd24c, total=16384, code=12288, eeprom=0),
        MCUModel(name='STC10F02', magic=0xd202, total=16384, code=2048, eeprom=0),
        MCUModel(name='STC10F04', magic=0xd204, total=16384, code=4096, eeprom=0),
        MCUModel(name='STC10F06', magic=0xd206, total=16384, code=6144, eeprom=0),
        MCUModel(name='STC10F08', magic=0xd208, total=16384, code=8192, eeprom=0),
        MCUModel(name='STC10F10', magic=0xd20a, total=16384, code=10240, eeprom=0),
        MCUModel(name='STC10F12', magic=0xd20c, total=16384, code=12288, eeprom=0),
        MCUModel(name='IAP10F02XE', magic=0xd272, total=16384, code=2048, eeprom=0),
        MCUModel(name='IAP10F04XE', magic=0xd274, total=16384, code=4096, eeprom=0),
        MCUModel(name='IAP10F06XE', magic=0xd276, total=16384, code=6144, eeprom=0),
        MCUModel(name='IAP10F08XE', magic=0xd278, total=16384, code=8192, eeprom=0),
        MCUModel(name='IAP10F10XE', magic=0xd27a, total=16384, code=10240, eeprom=0),
        MCUModel(name='IAP10F12XE', magic=0xd27c, total=16384, code=12288, eeprom=0),
        MCUModel(name='IAP10F14X', magic=0xd27e, total=16384, code=14336, eeprom=0),
        MCUModel(name='IAP10F02', magic=0xd232, total=16384, code=2048, eeprom=0),
        MCUModel(name='IAP10F04', magic=0xd234, total=16384, code=4096, eeprom=0),
        MCUModel(name='IAP10F06', magic=0xd236, total=16384, code=6144, eeprom=0),
        MCUModel(name='IAP10F08', magic=0xd238, total=16384, code=8192, eeprom=0),
        MCUModel(name='IAP10F10', magic=0xd23a, total=16384, code=10240, eeprom=0),
        MCUModel(name='IAP10F12', magic=0xd23c, total=16384, code=12288, eeprom=0),
        MCUModel(name='IAP10F14', magic=0xd23e, total=16384, code=14336, eeprom=0),
        MCUModel(name='STC10L02XE', magic=0xd2e2, total=16384, code=2048, eeprom=12288),
        MCUModel(name='STC10L04XE', magic=0xd2e4, total=16384, code=4096, eeprom=10240),
        MCUModel(name='STC10L06XE', magic=0xd2e6, total=16384, code=6144, eeprom=8192),
        MCUModel(name='STC10L08XE', magic=0xd2e8, total=16384, code=8192, eeprom=6144),
        MCUModel(name='STC10L10XE', magic=0xd2ea, total=16384, code=10240, eeprom=4096),
        MCUModel(name='STC10L12XE', magic=0xd2ec, total=16384, code=12288, eeprom=2048),
        MCUModel(name='STC10L02X', magic=0xd2c2, total=16384, code=2048, eeprom=0),
        MCUModel(name='STC10L04X', magic=0xd2c4, total=16384, code=4096, eeprom=0),
        MCUModel(name='STC10L06X', magic=0xd2c6, total=16384, code=6144, eeprom=0),
        MCUModel(name='STC10L08X', magic=0xd2c8, total=16384, code=8192, eeprom=0),
        MCUModel(name='STC10L10X', magic=0xd2ca, total=16384, code=10240, eeprom=0),
        MCUModel(name='STC10L12X', magic=0xd2cc, total=16384, code=12288, eeprom=0),
        MCUModel(name='STC10L02', magic=0xd282, total=16384, code=2048, eeprom=0),
        MCUModel(name='STC10L04', magic=0xd284, total=16384, code=4096, eeprom=0),
        MCUModel(name='STC10L06', magic=0xd286, total=16384, code=6144, eeprom=0),
        MCUModel(name='STC10L08', magic=0xd288, total=16384, code=8192, eeprom=0),
        MCUModel(name='STC10L10', magic=0xd28a, total=16384, code=10240, eeprom=0),
        MCUModel(name='STC10L12', magic=0xd28c, total=16384, code=12288, eeprom=0),
        MCUModel(name='IAP10L02XE', magic=0xd2f2, total=16384, code=2048, eeprom=0),
        MCUModel(name='IAP10L04XE', magic=0xd2f4, total=16384, code=4096, eeprom=0),
        MCUModel(name='IAP10L06XE', magic=0xd2f6, total=16384, code=6144, eeprom=0),
        MCUModel(name='IAP10L08XE', magic=0xd2f8, total=16384, code=8192, eeprom=0),
        MCUModel(name='IAP10L10XE', magic=0xd2fa, total=16384, code=10240, eeprom=0),
        MCUModel(name='IAP10L12XE', magic=0xd2fc, total=16384, code=12288, eeprom=0),
        MCUModel(name='IAP10L14X', magic=0xd2fe, total=16384, code=14336, eeprom=0),
        MCUModel(name='IAP10L02', magic=0xd2b2, total=16384, code=2048, eeprom=0),
        MCUModel(name='IAP10L04', magic=0xd2b4, total=16384, code=4096, eeprom=0),
        MCUModel(name='IAP10L06', magic=0xd2b6, total=16384, code=6144, eeprom=0),
        MCUModel(name='IAP10L08', magic=0xd2b8, total=16384, code=8192, eeprom=0),
        MCUModel(name='IAP10L10', magic=0xd2ba, total=16384, code=10240, eeprom=0),
        MCUModel(name='IAP10L12', magic=0xd2bc, total=16384, code=12288, eeprom=0),
        MCUModel(name='IAP10L14', magic=0xd2be, total=16384, code=14336, eeprom=0),
        MCUModel(name='STC02XE-5V', magic=0xd260, total=16384, code=2048, eeprom=12288),
        MCUModel(name='STC04XE-5V', magic=0xd261, total=16384, code=4096, eeprom=10240),
        MCUModel(name='STC06XE-5V', magic=0xd263, total=16384, code=6144, eeprom=8192),
        MCUModel(name='STC08XE-5V', magic=0xd265, total=16384, code=8192, eeprom=6144),
        MCUModel(name='STC10XE-5V', magic=0xd267, total=16384, code=10240, eeprom=4096),
        MCUModel(name='STC12XE-5V', magic=0xd269, total=16384, code=12288, eeprom=2048),
        MCUModel(name='IAP14X-5V', magic=0xd26b, total=16384, code=14336, eeprom=0),
        MCUModel(name='STC02XE-3V', magic=0xd2e0, total=16384, code=2048, eeprom=12288),
        MCUModel(name='STC04XE-3V', magic=0xd2e1, total=16384, code=4096, eeprom=10240),
        MCUModel(name='STC06XE-3V', magic=0xd2e3, total=16384, code=6144, eeprom=8192),
        MCUModel(name='STC08XE-3V', magic=0xd2e5, total=16384, code=8192, eeprom=6144),
        MCUModel(name='STC10XE-3V', magic=0xd2e7, total=16384, code=10240, eeprom=4096),
        MCUModel(name='STC12XE-3V', magic=0xd2e9, total=16384, code=12288, eeprom=2048),
        MCUModel(name='IAP14X-3V', magic=0xd2eb, total=16384, code=14336, eeprom=0),
        MCUModel(name='STC11F01E', magic=0xe221, total=8192, code=1024, eeprom=5120),
        MCUModel(name='STC11F02E', magic=0xe222, total=8192, code=2048, eeprom=4096),
        MCUModel(name='STC11F03E', magic=0xe223, total=8192, code=3072, eeprom=3072),
        MCUModel(name='STC11F04E', magic=0xe224, total=8192, code=4096, eeprom=2048),
        MCUModel(name='STC11F05E', magic=0xe265, total=8192, code=5120, eeprom=1024),
        MCUModel(name='STC11F01', magic=0xe201, total=8192, code=1024, eeprom=0),
        MCUModel(name='STC11F02', magic=0xe202, total=8192, code=2048, eeprom=0),
        MCUModel(name='STC11F03', magic=0xe203, total=8192, code=3072, eeprom=0),
        MCUModel(name='STC11F04', magic=0xe204, total=8192, code=4096, eeprom=0),
        MCUModel(name='STC11F05', magic=0xe245, total=8192, code=5120, eeprom=0),
        MCUModel(name='IAP11F01E', magic=0xe231, total=8192, code=1024, eeprom=0),
        MCUModel(name='IAP11F02E', magic=0xe232, total=8192, code=2048, eeprom=0),
        MCUModel(name='IAP11F03E', magic=0xe233, total=8192, code=3072, eeprom=0),
        MCUModel(name='IAP11F04E', magic=0xe234, total=8192, code=4096, eeprom=0),
        MCUModel(name='IAP11F05E', magic=0xe275, total=8192, code=5120, eeprom=0),
        MCUModel(name='IAP11F01', magic=0xe211, total=8192, code=1024, eeprom=0),
        MCUModel(name='IAP11F02', magic=0xe212, total=8192, code=2048, eeprom=0),
        MCUModel(name='IAP11F03', magic=0xe213, total=8192, code=3072, eeprom=0),
        MCUModel(name='IAP11F04', magic=0xe214, total=8192, code=4096, eeprom=0),
        MCUModel(name='IAP11F05', magic=0xe255, total=8192, code=5120, eeprom=0),
        MCUModel(name='IAP11F06', magic=0xe276, total=8192, code=6144, eeprom=0),
        MCUModel(name='STC11L01E', magic=0xe2a1, total=8192, code=1024, eeprom=5120),
        MCUModel(name='STC11L02E', magic=0xe2a2, total=8192, code=2048, eeprom=4096),
        MCUModel(name='STC11L03E', magic=0xe2a3, total=8192, code=3072, eeprom=3072),
        MCUModel(name='STC11L04E', magic=0xe2a4, total=8192, code=4096, eeprom=2048),
        MCUModel(name='STC11L05E', magic=0xe2e5, total=8192, code=5120, eeprom=1024),
        MCUModel(name='STC11L01', magic=0xe281, total=8192, code=1024, eeprom=0),
        MCUModel(name='STC11L02', magic=0xe282, total=8192, code=2048, eeprom=0),
        MCUModel(name='STC11L03', magic=0xe283, total=8192, code=3072, eeprom=0),
        MCUModel(name='STC11L04', magic=0xe284, total=8192, code=4096, eeprom=0),
        MCUModel(name='STC11L05', magic=0xe2c5, total=8192, code=5120, eeprom=0),
        MCUModel(name='IAP11L01E', magic=0xe2b1, total=8192, code=1024, eeprom=0),
        MCUModel(name='IAP11L02E', magic=0xe2b2, total=8192, code=2048, eeprom=0),
        MCUModel(name='IAP11L03E', magic=0xe2b3, total=8192, code=3072, eeprom=0),
        MCUModel(name='IAP11L04E', magic=0xe2b4, total=8192, code=4096, eeprom=0),
        MCUModel(name='IAP11L05E', magic=0xe2f5, total=8192, code=5120, eeprom=0),
        MCUModel(name='IAP11L01', magic=0xe291, total=8192, code=1024, eeprom=0),
        MCUModel(name='IAP11L02', magic=0xe292, total=8192, code=2048, eeprom=0),
        MCUModel(name='IAP11L03', magic=0xe293, total=8192, code=3072, eeprom=0),
        MCUModel(name='IAP11L04', magic=0xe294, total=8192, code=4096, eeprom=0),
        MCUModel(name='IAP11L05', magic=0xe2d5, total=8192, code=5120, eeprom=0),
        MCUModel(name='IAP11L06', magic=0xe2f6, total=8192, code=6144, eeprom=0),
        MCUModel(name='STC01E-5V', magic=0xe220, total=8192, code=1024, eeprom=5120),
        MCUModel(name='STC02E-5V', magic=0xe226, total=8192, code=2048, eeprom=4096),
        MCUModel(name='STC03E-5V', magic=0xe227, total=8192, code=3072, eeprom=3072),
        MCUModel(name='STC04E-5V', magic=0xe228, total=8192, code=4096, eeprom=2048),
        MCUModel(name='STC05E-5V', magic=0xe229, total=8192, code=5120, eeprom=1024),
        MCUModel(name='IAP06-5V', magic=0xe22a, total=8192, code=6144, eeprom=0),
        MCUModel(name='STC01E-3V', magic=0xe2a0, total=8192, code=1024, eeprom=5120),
        MCUModel(name='STC02E-3V', magic=0xe2a6, total=8192, code=2048, eeprom=4096),
        MCUModel(name='STC03E-3V', magic=0xe2a7, total=8192, code=3072, eeprom=3072),
        MCUModel(name='STC04E-3V', magic=0xe2a8, total=8192, code=4096, eeprom=2048),
        MCUModel(name='STC05E-3V', magic=0xe2a9, total=8192, code=5120, eeprom=1024),
        MCUModel(name='IAP06-3V', magic=0xe2aa, total=8192, code=6144, eeprom=0),
        MCUModel(name='STC11F08XE', magic=0xd364, total=65536, code=8192, eeprom=55296),
        MCUModel(name='STC11F16XE', magic=0xd368, total=65536, code=16384, eeprom=47104),
        MCUModel(name='STC11F20XE', magic=0xd36a, total=65536, code=20480, eeprom=30720),
        MCUModel(name='STC11F32XE', magic=0xd370, total=65536, code=32768, eeprom=30720),
        MCUModel(name='STC11F40XE', magic=0xd374, total=65536, code=40960, eeprom=22528),
        MCUModel(name='STC11F48XE', magic=0xd378, total=65536, code=49152, eeprom=14336),
        MCUModel(name='STC11F52XE', magic=0xd37a, total=65536, code=53248, eeprom=10240),
        MCUModel(name='STC11F56XE', magic=0xd37c, total=65536, code=57344, eeprom=6144),
        MCUModel(name='STC11F60XE', magic=0xd37e, total=65536, code=61440, eeprom=2048),
        MCUModel(name='STC11F08X', magic=0xd344, total=65536, code=8192, eeprom=0),
        MCUModel(name='STC11F16X', magic=0xd348, total=65536, code=16384, eeprom=0),
        MCUModel(name='STC11F20X', magic=0xd34a, total=65536, code=20480, eeprom=0),
        MCUModel(name='STC11F32X', magic=0xd350, total=65536, code=32768, eeprom=0),
        MCUModel(name='STC11F40X', magic=0xd354, total=65536, code=40960, eeprom=0),
        MCUModel(name='STC11F48X', magic=0xd358, total=65536, code=49152, eeprom=0),
        MCUModel(name='STC11F52X', magic=0xd35a, total=65536, code=53248, eeprom=0),
        MCUModel(name='STC11F56X', magic=0xd35c, total=65536, code=57344, eeprom=0),
        MCUModel(name='STC11F60X', magic=0xd35e, total=65536, code=61440, eeprom=0),
        MCUModel(name='STC11F08', magic=0xd304, total=65536, code=8192, eeprom=0),
        MCUModel(name='STC11F16', magic=0xd308, total=65536, code=16384, eeprom=0),
        MCUModel(name='STC11F20', magic=0xd30a, total=65536, code=20480, eeprom=0),
        MCUModel(name='STC11F32', magic=0xd310, total=65536, code=32768, eeprom=0),
        MCUModel(name='STC11F40', magic=0xd314, total=65536, code=40960, eeprom=0),
        MCUModel(name='STC11F48', magic=0xd318, total=65536, code=49152, eeprom=0),
        MCUModel(name='STC11F52', magic=0xd31a, total=65536, code=53248, eeprom=0),
        MCUModel(name='STC11F56', magic=0xd31c, total=65536, code=57344, eeprom=0),
        MCUModel(name='STC11F60', magic=0xd31e, total=65536, code=61440, eeprom=0),
        MCUModel(name='IAP11F08XE', magic=0xd363, total=65536, code=8192, eeprom=0),
        MCUModel(name='IAP11F16XE', magic=0xd367, total=65536, code=16384, eeprom=0),
        MCUModel(name='IAP11F20XE', magic=0xd369, total=65536, code=20480, eeprom=0),
        MCUModel(name='IAP11F32XE', magic=0xd36f, total=65536, code=32768, eeprom=0),
        MCUModel(name='IAP11F40XE', magic=0xd373, total=65536, code=40960, eeprom=0),
        MCUModel(name='IAP11F48XE', magic=0xd377, total=65536, code=49152, eeprom=0),
        MCUModel(name='IAP11F52XE', magic=0xd379, total=65536, code=53248, eeprom=0),
        MCUModel(name='IAP11F56XE', magic=0xd37b, total=65536, code=57344, eeprom=0),
        MCUModel(name='IAP11F60XE', magic=0xd37d, total=65536, code=61440, eeprom=0),
        MCUModel(name='IAP11F08X', magic=0xd343, total=65536, code=8192, eeprom=0),
        MCUModel(name='IAP11F16X', magic=0xd347, total=65536, code=16384, eeprom=0),
        MCUModel(name='IAP11F20X', magic=0xd349, total=65536, code=20480, eeprom=0),
        MCUModel(name='IAP11F32X', magic=0xd34f, total=65536, code=32768, eeprom=0),
        MCUModel(name='IAP11F40X', magic=0xd353, total=65536, code=40960, eeprom=0),
        MCUModel(name='IAP11F48X', magic=0xd357, total=65536, code=49152, eeprom=0),
        MCUModel(name='IAP11F52X', magic=0xd359, total=65536, code=53248, eeprom=0),
        MCUModel(name='IAP11F56X', magic=0xd35b, total=65536, code=57344, eeprom=0),
        MCUModel(name='IAP11F60X', magic=0xd35d, total=65536, code=61440, eeprom=0),
        MCUModel(name='IAP11F62X', magic=0xd35f, total=65536, code=63488, eeprom=0),
        MCUModel(name='IAP11F08', magic=0xd303, total=65536, code=8192, eeprom=0),
        MCUModel(name='IAP11F16', magic=0xd307, total=65536, code=16384, eeprom=0),
        MCUModel(name='IAP11F20', magic=0xd309, total=65536, code=20480, eeprom=0),
        MCUModel(name='IAP11F32', magic=0xd30f, total=65536, code=32768, eeprom=0),
        MCUModel(name='IAP11F40', magic=0xd313, total=65536, code=40960, eeprom=0),
        MCUModel(name='IAP11F48', magic=0xd317, total=65536, code=49152, eeprom=0),
        MCUModel(name='IAP11F52', magic=0xd319, total=65536, code=53248, eeprom=0),
        MCUModel(name='IAP11F56', magic=0xd31b, total=65536, code=57344, eeprom=0),
        MCUModel(name='IAP11F60', magic=0xd31d, total=65536, code=61440, eeprom=0),
        MCUModel(name='IAP11F62', magic=0xd31f, total=65536, code=63488, eeprom=0),
        MCUModel(name='STC11L08XE', magic=0xd3e4, total=65536, code=8192, eeprom=55296),
        MCUModel(name='STC11L16XE', magic=0xd3e8, total=65536, code=16384, eeprom=47104),
        MCUModel(name='STC11L20XE', magic=0xd3ea, total=65536, code=20480, eeprom=30720),
        MCUModel(name='STC11L32XE', magic=0xd3f0, total=65536, code=32768, eeprom=30720),
        MCUModel(name='STC11L40XE', magic=0xd3f4, total=65536, code=40960, eeprom=22528),
        MCUModel(name='STC11L48XE', magic=0xd3f8, total=65536, code=49152, eeprom=14336),
        MCUModel(name='STC11L52XE', magic=0xd3fa, total=65536, code=53248, eeprom=10240),
        MCUModel(name='STC11L56XE', magic=0xd3fc, total=65536, code=57344, eeprom=6144),
        MCUModel(name='STC11L60XE', magic=0xd3fe, total=65536, code=61440, eeprom=2048),
        MCUModel(name='STC11L08X', magic=0xd3c4, total=65536, code=8192, eeprom=0),
        MCUModel(name='STC11L16X', magic=0xd3c8, total=65536, code=16384, eeprom=0),
        MCUModel(name='STC11L20X', magic=0xd3ca, total=65536, code=20480, eeprom=0),
        MCUModel(name='STC11L32X', magic=0xd3d0, total=65536, code=32768, eeprom=0),
        MCUModel(name='STC11L40X', magic=0xd3d4, total=65536, code=40960, eeprom=0),
        MCUModel(name='STC11L48X', magic=0xd3d8, total=65536, code=49152, eeprom=0),
        MCUModel(name='STC11L52X', magic=0xd3da, total=65536, code=53248, eeprom=0),
        MCUModel(name='STC11L56X', magic=0xd3dc, total=65536, code=57344, eeprom=0),
        MCUModel(name='STC11L60X', magic=0xd3de, total=65536, code=61440, eeprom=0),
        MCUModel(name='STC11L08', magic=0xd384, total=65536, code=8192, eeprom=0),
        MCUModel(name='STC11L16', magic=0xd388, total=65536, code=16384, eeprom=0),
        MCUModel(name='STC11L20', magic=0xd38a, total=65536, code=20480, eeprom=0),
        MCUModel(name='STC11L32', magic=0xd390, total=65536, code=32768, eeprom=0),
        MCUModel(name='STC11L40', magic=0xd394, total=65536, code=40960, eeprom=0),
        MCUModel(name='STC11L48', magic=0xd398, total=65536, code=49152, eeprom=0),
        MCUModel(name='STC11L52', magic=0xd39a, total=65536, code=53248, eeprom=0),
        MCUModel(name='STC11L56', magic=0xd39c, total=65536, code=57344, eeprom=0),
        MCUModel(name='STC11L60', magic=0xd39e, total=65536, code=61440, eeprom=0),
        MCUModel(name='IAP11L08XE', magic=0xd3e3, total=65536, code=8192, eeprom=0),
        MCUModel(name='IAP11L16XE', magic=0xd3e7, total=65536, code=16384, eeprom=0),
        MCUModel(name='IAP11L20XE', magic=0xd3e9, total=65536, code=20480, eeprom=0),
        MCUModel(name='IAP11L32XE', magic=0xd3ef, total=65536, code=32768, eeprom=0),
        MCUModel(name='IAP11L40XE', magic=0xd3f3, total=65536, code=40960, eeprom=0),
        MCUModel(name='IAP11L48XE', magic=0xd3f7, total=65536, code=49152, eeprom=0),
        MCUModel(name='IAP11L52XE', magic=0xd3f9, total=65536, code=53248, eeprom=0),
        MCUModel(name='IAP11L56XE', magic=0xd3fb, total=65536, code=57344, eeprom=0),
        MCUModel(name='IAP11L60XE', magic=0xd3fd, total=65536, code=61440, eeprom=0),
        MCUModel(name='IAP11L08X', magic=0xd3c3, total=65536, code=8192, eeprom=0),
        MCUModel(name='IAP11L16X', magic=0xd3c7, total=65536, code=16384, eeprom=0),
        MCUModel(name='IAP11L20X', magic=0xd3c9, total=65536, code=20480, eeprom=0),
        MCUModel(name='IAP11L32X', magic=0xd3cf, total=65536, code=32768, eeprom=0),
        MCUModel(name='IAP11L40X', magic=0xd3d3, total=65536, code=40960, eeprom=0),
        MCUModel(name='IAP11L48X', magic=0xd3d7, total=65536, code=49152, eeprom=0),
        MCUModel(name='IAP11L52X', magic=0xd3d9, total=65536, code=53248, eeprom=0),
        MCUModel(name='IAP11L56X', magic=0xd3db, total=65536, code=57344, eeprom=0),
        MCUModel(name='IAP11L60X', magic=0xd3dd, total=65536, code=61440, eeprom=0),
        MCUModel(name='IAP11L62X', magic=0xd3df, total=65536, code=63488, eeprom=0),
        MCUModel(name='IAP11L08', magic=0xd383, total=65536, code=8192, eeprom=0),
        MCUModel(name='IAP11L16', magic=0xd387, total=65536, code=16384, eeprom=0),
        MCUModel(name='IAP11L20', magic=0xd389, total=65536, code=20480, eeprom=0),
        MCUModel(name='IAP11L32', magic=0xd38f, total=65536, code=32768, eeprom=0),
        MCUModel(name='IAP11L40', magic=0xd393, total=65536, code=40960, eeprom=0),
        MCUModel(name='IAP11L48', magic=0xd397, total=65536, code=49152, eeprom=0),
        MCUModel(name='IAP11L52', magic=0xd399, total=65536, code=53248, eeprom=0),
        MCUModel(name='IAP11L56', magic=0xd39b, total=65536, code=57344, eeprom=0),
        MCUModel(name='IAP11L60', magic=0xd39d, total=65536, code=61440, eeprom=0),
        MCUModel(name='IAP11L62', magic=0xd39f, total=65536, code=63488, eeprom=0),
        MCUModel(name='STC08XE-5V', magic=0xd360, total=65536, code=8192, eeprom=55296),
        MCUModel(name='STC16XE-5V', magic=0xd361, total=65536, code=16384, eeprom=47104),
        MCUModel(name='STC20XE-5V', magic=0xd362, total=65536, code=20480, eeprom=30720),
        MCUModel(name='STC32XE-5V', magic=0xd365, total=65536, code=32768, eeprom=30720),
        MCUModel(name='STC40XE-5V', magic=0xd366, total=65536, code=40960, eeprom=22528),
        MCUModel(name='STC48XE-5V', magic=0xd36b, total=65536, code=49152, eeprom=14336),
        MCUModel(name='STC52XE-5V', magic=0xd36c, total=65536, code=53248, eeprom=10240),
        MCUModel(name='STC56XE-5V', magic=0xd36d, total=65536, code=57344, eeprom=6144),
        MCUModel(name='STC60XE-5V', magic=0xd36e, total=65536, code=61440, eeprom=2048),
        MCUModel(name='IAP62X-5V', magic=0xd371, total=65536, code=63488, eeprom=0),
        MCUModel(name='STC08XE-3V', magic=0xd3e0, total=65536, code=8192, eeprom=55296),
        MCUModel(name='STC16XE-3V', magic=0xd3e1, total=65536, code=16384, eeprom=47104),
        MCUModel(name='STC20XE-3V', magic=0xd3e2, total=65536, code=20480, eeprom=30720),
        MCUModel(name='STC32XE-3V', magic=0xd3e5, total=65536, code=32768, eeprom=30720),
        MCUModel(name='STC40XE-3V', magic=0xd3e6, total=65536, code=40960, eeprom=22528),
        MCUModel(name='STC48XE-3V', magic=0xd3eb, total=65536, code=49152, eeprom=14336),
        MCUModel(name='STC52XE-3V', magic=0xd3ec, total=65536, code=53248, eeprom=10240),
        MCUModel(name='STC56XE-3V', magic=0xd3ed, total=65536, code=57344, eeprom=6144),
        MCUModel(name='STC60XE-3V', magic=0xd3ee, total=65536, code=61440, eeprom=2048),
        MCUModel(name='IAP62X-3V', magic=0xd3f1, total=65536, code=63488, eeprom=0),
        MCUModel(name='STC12C5201AD', magic=0xe161, total=8192, code=1024, eeprom=5120),
        MCUModel(name='STC12C5202AD', magic=0xe162, total=8192, code=2048, eeprom=4096),
        MCUModel(name='STC12C5203AD', magic=0xe163, total=8192, code=3072, eeprom=3072),
        MCUModel(name='STC12C5204AD', magic=0xe164, total=8192, code=4096, eeprom=2048),
        MCUModel(name='STC12C5205AD', magic=0xe165, total=8192, code=5120, eeprom=1024),
        MCUModel(name='STC12C5206AD', magic=0xe166, total=8192, code=6144, eeprom=0),
        MCUModel(name='STC12C5201PWM', magic=0xe121, total=8192, code=1024, eeprom=5120),
        MCUModel(name='STC12C5202PWM', magic=0xe122, total=8192, code=2048, eeprom=4096),
        MCUModel(name='STC12C5203PWM', magic=0xe123, total=8192, code=3072, eeprom=3072),
        MCUModel(name='STC12C5204PWM', magic=0xe124, total=8192, code=4096, eeprom=2048),
        MCUModel(name='STC12C5205PWM', magic=0xe125, total=8192, code=5120, eeprom=1024),
        MCUModel(name='STC12C5206PWM', magic=0xe126, total=8192, code=6144, eeprom=0),
        MCUModel(name='STC12C5201', magic=0xe101, total=8192, code=1024, eeprom=5120),
        MCUModel(name='STC12C5202', magic=0xe102, total=8192, code=2048, eeprom=4096),
        MCUModel(name='STC12C5203', magic=0xe103, total=8192, code=3072, eeprom=3072),
        MCUModel(name='STC12C5204', magic=0xe104, total=8192, code=4096, eeprom=2048),
        MCUModel(name='STC12C5205', magic=0xe105, total=8192, code=5120, eeprom=1024),
        MCUModel(name='STC12C5206', magic=0xe106, total=8192, code=6144, eeprom=0),
        MCUModel(name='STC12LE5201AD', magic=0xe1e1, total=8192, code=1024, eeprom=5120),
        MCUModel(name='STC12LE5202AD', magic=0xe1e2, total=8192, code=2048, eeprom=4096),
        MCUModel(name='STC12LE5203AD', magic=0xe1e3, total=8192, code=3072, eeprom=3072),
        MCUModel(name='STC12LE5204AD', magic=0xe1e4, total=8192, code=4096, eeprom=2048),
        MCUModel(name='STC12LE5205AD', magic=0xe1e5, total=8192, code=5120, eeprom=1024),
        MCUModel(name='STC12LE5206AD', magic=0xe1e6, total=8192, code=6144, eeprom=0),
        MCUModel(name='STC12LE5201PWM', magic=0xe1a1, total=8192, code=1024, eeprom=5120),
        MCUModel(name='STC12LE5202PWM', magic=0xe1a2, total=8192, code=2048, eeprom=4096),
        MCUModel(name='STC12LE5203PWM', magic=0xe1a3, total=8192, code=3072, eeprom=3072),
        MCUModel(name='STC12LE5204PWM', magic=0xe1a4, total=8192, code=4096, eeprom=2048),
        MCUModel(name='STC12LE5205PWM', magic=0xe1a5, total=8192, code=5120, eeprom=1024),
        MCUModel(name='STC12LE5206PWM', magic=0xe1a6, total=8192, code=6144, eeprom=0),
        MCUModel(name='STC12LE5201', magic=0xe181, total=8192, code=1024, eeprom=5120),
        MCUModel(name='STC12LE5202', magic=0xe182, total=8192, code=2048, eeprom=4096),
        MCUModel(name='STC12LE5203', magic=0xe183, total=8192, code=3072, eeprom=3072),
        MCUModel(name='STC12LE5204', magic=0xe184, total=8192, code=4096, eeprom=2048),
        MCUModel(name='STC12LE5205', magic=0xe185, total=8192, code=5120, eeprom=1024),
        MCUModel(name='STC12LE5206', magic=0xe186, total=8192, code=6144, eeprom=0),
        MCUModel(name='STC5201AD-5V', magic=0xe168, total=8192, code=1024, eeprom=5120),
        MCUModel(name='STC5202AD-5V', magic=0xe169, total=8192, code=2048, eeprom=4096),
        MCUModel(name='STC5203AD-5V', magic=0xe16a, total=8192, code=3072, eeprom=3072),
        MCUModel(name='STC5204AD-5V', magic=0xe16b, total=8192, code=4096, eeprom=2048),
        MCUModel(name='STC5205AD-5V', magic=0xe16c, total=8192, code=5120, eeprom=1024),
        MCUModel(name='STC5206AD-5V', magic=0xe16d, total=8192, code=6144, eeprom=0),
        MCUModel(name='STC5201AD-3V', magic=0xe1e8, total=8192, code=1024, eeprom=5120),
        MCUModel(name='STC5202AD-3V', magic=0xe1e9, total=8192, code=2048, eeprom=4096),
        MCUModel(name='STC5203AD-3V', magic=0xe1ea, total=8192, code=3072, eeprom=3072),
        MCUModel(name='STC5204AD-3V', magic=0xe1eb, total=8192, code=4096, eeprom=2048),
        MCUModel(name='STC5205AD-3V', magic=0xe1ec, total=8192, code=5120, eeprom=1024),
        MCUModel(name='STC5206AD-3V', magic=0xe1ed, total=8192, code=6144, eeprom=0),
        MCUModel(name='STC12C5601AD', magic=0xe661, total=32768, code=1024, eeprom=29696),
        MCUModel(name='STC12C5602AD', magic=0xe662, total=32768, code=2048, eeprom=28672),
        MCUModel(name='STC12C5603AD', magic=0xe663, total=32768, code=3072, eeprom=27648),
        MCUModel(name='STC12C5604AD', magic=0xe664, total=32768, code=4096, eeprom=26624),
        MCUModel(name='STC12C5605AD', magic=0xe665, total=32768, code=5120, eeprom=0),
        MCUModel(name='STC12C5606AD', magic=0xe666, total=32768, code=6144, eeprom=24576),
        MCUModel(name='STC12C5608AD', magic=0xe668, total=32768, code=8192, eeprom=22528),
        MCUModel(name='STC12C5612AD', magic=0xe66c, total=32768, code=12288, eeprom=0),
        MCUModel(name='STC12C5616AD', magic=0xe670, total=32768, code=16384, eeprom=14336),
        MCUModel(name='STC12C5620AD', magic=0xe674, total=32768, code=20480, eeprom=10240),
        MCUModel(name='STC12C5624AD', magic=0xe678, total=32768, code=24576, eeprom=6144),
        MCUModel(name='STC12C5628AD', magic=0xe67c, total=32768, code=28672, eeprom=0),
        MCUModel(name='STC12C5630AD', magic=0xe67e, total=32768, code=30720, eeprom=0),
        MCUModel(name='STC12C5601', magic=0xe601, total=32768, code=1024, eeprom=29696),
        MCUModel(name='STC12C5602', magic=0xe602, total=32768, code=2048, eeprom=28672),
        MCUModel(name='STC12C5603', magic=0xe603, total=32768, code=3072, eeprom=27648),
        MCUModel(name='STC12C5604', magic=0xe604, total=32768, code=4096, eeprom=26624),
        MCUModel(name='STC12C5605', magic=0xe605, total=32768, code=5120, eeprom=0),
        MCUModel(name='STC12C5606', magic=0xe606, total=32768, code=6144, eeprom=24576),
        MCUModel(name='STC12C5608', magic=0xe608, total=32768, code=8192, eeprom=22528),
        MCUModel(name='STC12C5612', magic=0xe60c, total=32768, code=12288, eeprom=0),
        MCUModel(name='STC12C5616', magic=0xe610, total=32768, code=16384, eeprom=14336),
        MCUModel(name='STC12C5620', magic=0xe614, total=32768, code=20480, eeprom=10240),
        MCUModel(name='STC12C5624', magic=0xe618, total=32768, code=24576, eeprom=6144),
        MCUModel(name='STC12C5628', magic=0xe61c, total=32768, code=28672, eeprom=0),
        MCUModel(name='STC12C5630', magic=0xe61e, total=32768, code=30720, eeprom=0),
        MCUModel(name='STC12LE5601AD', magic=0xe6e1, total=32768, code=1024, eeprom=29696),
        MCUModel(name='STC12LE5602AD', magic=0xe6e2, total=32768, code=2048, eeprom=28672),
        MCUModel(name='STC12LE5603AD', magic=0xe6e3, total=32768, code=3072, eeprom=27648),
        MCUModel(name='STC12LE5604AD', magic=0xe6e4, total=32768, code=4096, eeprom=26624),
        MCUModel(name='STC12LE5605AD', magic=0xe6e5, total=32768, code=5120, eeprom=0),
        MCUModel(name='STC12LE5606AD', magic=0xe6e6, total=32768, code=6144, eeprom=24576),
        MCUModel(name='STC12LE5608AD', magic=0xe6e8, total=32768, code=8192, eeprom=22528),
        MCUModel(name='STC12LE5612AD', magic=0xe6ec, total=32768, code=12288, eeprom=0),
        MCUModel(name='STC12LE5616AD', magic=0xe6f0, total=32768, code=16384, eeprom=14336),
        MCUModel(name='STC12LE5620AD', magic=0xe6f4, total=32768, code=20480, eeprom=10240),
        MCUModel(name='STC12LE5624AD', magic=0xe6f8, total=32768, code=24576, eeprom=6144),
        MCUModel(name='STC12LE5628AD', magic=0xe6fc, total=32768, code=28672, eeprom=0),
        MCUModel(name='STC12LE5630AD', magic=0xe6fe, total=32768, code=30720, eeprom=0),
        MCUModel(name='STC12LE5601', magic=0xe681, total=32768, code=1024, eeprom=29696),
        MCUModel(name='STC12LE5602', magic=0xe682, total=32768, code=2048, eeprom=28672),
        MCUModel(name='STC12LE5603', magic=0xe683, total=32768, code=3072, eeprom=27648),
        MCUModel(name='STC12LE5604', magic=0xe684, total=32768, code=4096, eeprom=26624),
        MCUModel(name='STC12LE5605', magic=0xe685, total=32768, code=5120, eeprom=0),
        MCUModel(name='STC12LE5606', magic=0xe686, total=32768, code=6144, eeprom=24576),
        MCUModel(name='STC12LE5608', magic=0xe688, total=32768, code=8192, eeprom=22528),
        MCUModel(name='STC12LE5612', magic=0xe68c, total=32768, code=12288, eeprom=0),
        MCUModel(name='STC12LE5616', magic=0xe690, total=32768, code=16384, eeprom=14336),
        MCUModel(name='STC12LE5620', magic=0xe694, total=32768, code=20480, eeprom=10240),
        MCUModel(name='STC12LE5624', magic=0xe698, total=32768, code=24576, eeprom=6144),
        MCUModel(name='STC12LE5628', magic=0xe69c, total=32768, code=28672, eeprom=0),
        MCUModel(name='STC12LE5630', magic=0xe69e, total=32768, code=30720, eeprom=0),
        MCUModel(name='STC608AD-5V', magic=0xe667, total=32768, code=8192, eeprom=22528),
        MCUModel(name='STC616AD-5V', magic=0xe66a, total=32768, code=16384, eeprom=14336),
        MCUModel(name='IAP616AD-5V', magic=0xe669, total=32768, code=16384, eeprom=0),
        MCUModel(name='STC608AD-3V', magic=0xe6e7, total=32768, code=8192, eeprom=22528),
        MCUModel(name='STC616AD-3V', magic=0xe6ea, total=32768, code=16384, eeprom=14336),
        MCUModel(name='IAP616AD-3V', magic=0xe6e9, total=32768, code=16384, eeprom=0),
        MCUModel(name='STC12C5401AD', magic=0xe061, total=32768, code=1024, eeprom=12288),
        MCUModel(name='STC12C5402AD', magic=0xe062, total=32768, code=2048, eeprom=12288),
        MCUModel(name='STC12C5404AD', magic=0xe064, total=32768, code=4096, eeprom=12288),
        MCUModel(name='STC12C5406AD', magic=0xe066, total=32768, code=6144, eeprom=12288),
        MCUModel(name='STC12C5408AD', magic=0xe068, total=32768, code=8192, eeprom=12288),
        MCUModel(name='STC12C5410AD', magic=0xe06a, total=32768, code=10240, eeprom=12288),
        MCUModel(name='STC12C5412AD', magic=0xe06c, total=32768, code=12288, eeprom=12288),
        MCUModel(name='STC12C5416AD', magic=0xe070, total=32768, code=16384, eeprom=12288),
        MCUModel(name='STC12C5420AD', magic=0xe074, total=32768, code=20480, eeprom=12288),
        MCUModel(name='STC12C5424AD', magic=0xe078, total=32768, code=24576, eeprom=12288),
        MCUModel(name='STC12C5428AD', magic=0xe07c, total=32768, code=28672, eeprom=12288),
        MCUModel(name='STC12C5401', magic=0xe001, total=32768, code=1024, eeprom=12288),
        MCUModel(name='STC12C5402', magic=0xe002, total=32768, code=2048, eeprom=12288),
        MCUModel(name='STC12C5404', magic=0xe004, total=32768, code=4096, eeprom=12288),
        MCUModel(name='STC12C5406', magic=0xe006, total=32768, code=6144, eeprom=12288),
        MCUModel(name='STC12C5408', magic=0xe008, total=32768, code=8192, eeprom=12288),
        MCUModel(name='STC12C5410', magic=0xe00a, total=32768, code=10240, eeprom=12288),
        MCUModel(name='STC12C5412', magic=0xe00c, total=32768, code=12288, eeprom=12288),
        MCUModel(name='STC12C5416', magic=0xe010, total=32768, code=16384, eeprom=12288),
        MCUModel(name='STC12C5420', magic=0xe014, total=32768, code=20480, eeprom=12288),
        MCUModel(name='STC12C5424', magic=0xe018, total=32768, code=24576, eeprom=12288),
        MCUModel(name='STC12C5428', magic=0xe01c, total=32768, code=28672, eeprom=12288),
        MCUModel(name='STC12LE5401AD', magic=0xe0e1, total=32768, code=1024, eeprom=12288),
        MCUModel(name='STC12LE5402AD', magic=0xe0e2, total=32768, code=2048, eeprom=12288),
        MCUModel(name='STC12LE5404AD', magic=0xe0e4, total=32768, code=4096, eeprom=12288),
        MCUModel(name='STC12LE5406AD', magic=0xe0e6, total=32768, code=6144, eeprom=12288),
        MCUModel(name='STC12LE5408AD', magic=0xe0e8, total=32768, code=8192, eeprom=12288),
        MCUModel(name='STC12LE5410AD', magic=0xe0ea, total=32768, code=10240, eeprom=12288),
        MCUModel(name='STC12LE5412AD', magic=0xe0ec, total=32768, code=12288, eeprom=12288),
        MCUModel(name='STC12LE5416AD', magic=0xe0f0, total=32768, code=16384, eeprom=12288),
        MCUModel(name='STC12LE5420AD', magic=0xe0f4, total=32768, code=20480, eeprom=12288),
        MCUModel(name='STC12LE5424AD', magic=0xe0f8, total=32768, code=24576, eeprom=12288),
        MCUModel(name='STC12LE5428AD', magic=0xe0fc, total=32768, code=28672, eeprom=12288),
        MCUModel(name='STC12LE5401', magic=0xe081, total=32768, code=1024, eeprom=12288),
        MCUModel(name='STC12LE5402', magic=0xe082, total=32768, code=2048, eeprom=12288),
        MCUModel(name='STC12LE5404', magic=0xe084, total=32768, code=4096, eeprom=12288),
        MCUModel(name='STC12LE5406', magic=0xe086, total=32768, code=6144, eeprom=12288),
        MCUModel(name='STC12LE5408', magic=0xe088, total=32768, code=8192, eeprom=12288),
        MCUModel(name='STC12LE5410', magic=0xe08a, total=32768, code=10240, eeprom=12288),
        MCUModel(name='STC12LE5412', magic=0xe08c, total=32768, code=12288, eeprom=12288),
        MCUModel(name='STC12LE5416', magic=0xe090, total=32768, code=16384, eeprom=12288),
        MCUModel(name='STC12LE5420', magic=0xe094, total=32768, code=20480, eeprom=12288),
        MCUModel(name='STC12LE5424', magic=0xe098, total=32768, code=24576, eeprom=12288),
        MCUModel(name='STC12LE5428', magic=0xe09c, total=32768, code=28672, eeprom=12288),
        MCUModel(name='STC12C1052AD', magic=0xf211, total=8192, code=1024, eeprom=5120),
        MCUModel(name='STC12C2052AD', magic=0xf212, total=8192, code=2048, eeprom=4096),
        MCUModel(name='STC12C3052AD', magic=0xf213, total=8192, code=3072, eeprom=3072),
        MCUModel(name='STC12C4052AD', magic=0xf214, total=8192, code=4096, eeprom=2048),
        MCUModel(name='STC12C5052AD', magic=0xf215, total=8192, code=5120, eeprom=1024),
        MCUModel(name='STC12C1052', magic=0xf201, total=8192, code=1024, eeprom=5120),
        MCUModel(name='STC12C2052', magic=0xf202, total=8192, code=2048, eeprom=4096),
        MCUModel(name='STC12C3052', magic=0xf203, total=8192, code=3072, eeprom=3072),
        MCUModel(name='STC12C4052', magic=0xf204, total=8192, code=4096, eeprom=2048),
        MCUModel(name='STC12C5052', magic=0xf205, total=8192, code=5120, eeprom=1024),
        MCUModel(name='STC12LE1052AD', magic=0xf231, total=8192, code=1024, eeprom=5120),
        MCUModel(name='STC12LE2052AD', magic=0xf232, total=8192, code=2048, eeprom=4096),
        MCUModel(name='STC12LE3052AD', magic=0xf233, total=8192, code=3072, eeprom=3072),
        MCUModel(name='STC12LE4052AD', magic=0xf234, total=8192, code=4096, eeprom=2048),
        MCUModel(name='STC12LE5052AD', magic=0xf235, total=8192, code=5120, eeprom=1024),
        MCUModel(name='STC12LE1052', magic=0xf221, total=8192, code=1024, eeprom=5120),
        MCUModel(name='STC12LE2052', magic=0xf222, total=8192, code=2048, eeprom=4096),
        MCUModel(name='STC12LE3052', magic=0xf223, total=8192, code=3072, eeprom=3072),
        MCUModel(name='STC12LE4052', magic=0xf224, total=8192, code=4096, eeprom=2048),
        MCUModel(name='STC12LE5052', magic=0xf225, total=8192, code=5120, eeprom=1024),
        MCUModel(name='STC89C51', magic=0xf050, total=16384, code=4096, eeprom=10240),
        MCUModel(name='STC89C52', magic=0xf051, total=16384, code=8192, eeprom=6144),
        MCUModel(name='STC89C53', magic=0xf052, total=16384, code=12288, eeprom=2048),
        MCUModel(name='STC89C14', magic=0xf053, total=16384, code=14336, eeprom=0),
        MCUModel(name='STC89LE51', magic=0xf060, total=16384, code=4096, eeprom=10240),
        MCUModel(name='STC89LE52', magic=0xf061, total=16384, code=8192, eeprom=6144),
        MCUModel(name='STC89LE53', magic=0xf062, total=16384, code=12288, eeprom=2048),
        MCUModel(name='STC89LE14', magic=0xf063, total=16384, code=14336, eeprom=0),
        MCUModel(name='STC89C54', magic=0xf1a0, total=65536, code=16384, eeprom=47104),
        MCUModel(name='STC89C58', magic=0xf1a1, total=65536, code=32768, eeprom=30720),
        MCUModel(name='STC89C510', magic=0xf1a2, total=65536, code=40960, eeprom=22528),
        MCUModel(name='STC89C512', magic=0xf1a3, total=65536, code=49152, eeprom=14336),
        MCUModel(name='STC89C514', magic=0xf1a4, total=65536, code=57344, eeprom=6144),
        MCUModel(name='STC89C516', magic=0xf1a5, total=65536, code=63488, eeprom=0),
        MCUModel(name='STC89LE54', magic=0xf1b0, total=65536, code=16384, eeprom=47104),
        MCUModel(name='STC89LE58', magic=0xf1b1, total=65536, code=32768, eeprom=30720),
        MCUModel(name='STC89LE510', magic=0xf1b2, total=65536, code=40960, eeprom=22528),
        MCUModel(name='STC89LE512', magic=0xf1b3, total=65536, code=49152, eeprom=14336),
        MCUModel(name='STC89LE514', magic=0xf1b4, total=65536, code=57344, eeprom=6144),
        MCUModel(name='STC89LE516', magic=0xf1b5, total=65536, code=63488, eeprom=0),
        MCUModel(name='STC89C51RC/LE51R', magic=0xf001, total=16384, code=4096, eeprom=10240),
        MCUModel(name='STC89C52RC/LE52R', magic=0xf002, total=16384, code=8192, eeprom=6144),
        MCUModel(name='STC89C53RC/LE53R', magic=0xf004, total=16384, code=14336, eeprom=0),
        MCUModel(name='STC89C06RC/LE06R', magic=0xf006, total=16384, code=6144, eeprom=8192),
        MCUModel(name='STC89C07RC/LE07R', magic=0xf007, total=16384, code=7168, eeprom=7168),
        MCUModel(name='STC89C10RC/LE10R', magic=0xf00a, total=16384, code=10240, eeprom=4096),
        MCUModel(name='STC89C12RC/LE12R', magic=0xf00c, total=16384, code=12288, eeprom=2048),
        MCUModel(name='STC89C51RD+/LE51', magic=0xf101, total=65536, code=4096, eeprom=59392),
        MCUModel(name='STC89C52RD+/LE52', magic=0xf102, total=65536, code=8192, eeprom=55296),
        MCUModel(name='STC89C54RD+/LE54', magic=0xf104, total=65536, code=16384, eeprom=47104),
        MCUModel(name='STC89C55RD+/LE55', magic=0xf105, total=65536, code=20480, eeprom=43008),
        MCUModel(name='STC89C58RD+/LE58', magic=0xf108, total=65536, code=32768, eeprom=30720),
        MCUModel(name='STC89C510RD+/LE5', magic=0xf10a, total=65536, code=40960, eeprom=22528),
        MCUModel(name='STC89C512RD+/LE5', magic=0xf10c, total=65536, code=49152, eeprom=14336),
        MCUModel(name='STC89C513RD+/LE5', magic=0xf10d, total=65536, code=53248, eeprom=10240),
        MCUModel(name='STC89C514RD+/LE5', magic=0xf10e, total=65536, code=57344, eeprom=6144),
        MCUModel(name='STC89C516RD+/LE5', magic=0xf110, total=65536, code=63488, eeprom=0),
        MCUModel(name='STC89C516RD/LV51', magic=0xffff, total=65536, code=65536, eeprom=0),
        MCUModel(name='STC90C51RC', magic=0xf021, total=16384, code=4096, eeprom=10240),
        MCUModel(name='STC90C52RC', magic=0xf022, total=16384, code=8192, eeprom=6144),
        MCUModel(name='STC90C53RC', magic=0xf024, total=16384, code=14336, eeprom=0),
        MCUModel(name='STC90C06RC', magic=0xf026, total=16384, code=6144, eeprom=8192),
        MCUModel(name='STC90C07RC', magic=0xf027, total=16384, code=7168, eeprom=7168),
        MCUModel(name='STC90C10RC', magic=0xf02a, total=16384, code=10240, eeprom=4096),
        MCUModel(name='STC90C12RC', magic=0xf02c, total=16384, code=12288, eeprom=2048),
        MCUModel(name='STC90LE51RC', magic=0xf041, total=16384, code=4096, eeprom=10240),
        MCUModel(name='STC90LE52RC', magic=0xf042, total=16384, code=8192, eeprom=6144),
        MCUModel(name='STC90LE53RC', magic=0xf044, total=16384, code=14336, eeprom=0),
        MCUModel(name='STC90LE06RC', magic=0xf046, total=16384, code=6144, eeprom=8192),
        MCUModel(name='STC90LE07RC', magic=0xf047, total=16384, code=7168, eeprom=7168),
        MCUModel(name='STC90LE10RC', magic=0xf04a, total=16384, code=10240, eeprom=4096),
        MCUModel(name='STC90LE12RC', magic=0xf04c, total=16384, code=12288, eeprom=2048),
        MCUModel(name='STC90C51RD+', magic=0xf121, total=65536, code=4096, eeprom=59392),
        MCUModel(name='STC90C52RD+', magic=0xf122, total=65536, code=8192, eeprom=55296),
        MCUModel(name='STC90C54RD+', magic=0xf124, total=65536, code=16384, eeprom=47104),
        MCUModel(name='STC90C55RD+', magic=0xf125, total=65536, code=20480, eeprom=43008),
        MCUModel(name='STC90C58RD+', magic=0xf128, total=65536, code=32768, eeprom=30720),
        MCUModel(name='STC90C510RD+', magic=0xf12a, total=65536, code=40960, eeprom=22528),
        MCUModel(name='STC90C512RD+', magic=0xf12c, total=65536, code=49152, eeprom=14336),
        MCUModel(name='STC90C513RD+', magic=0xf12d, total=65536, code=53248, eeprom=10240),
        MCUModel(name='STC90C514RD+', magic=0xf12e, total=65536, code=57344, eeprom=6144),
        MCUModel(name='STC90C516RD+', magic=0xf130, total=65536, code=63488, eeprom=0),
        MCUModel(name='STC90LE51RD+', magic=0xf141, total=65536, code=4096, eeprom=59392),
        MCUModel(name='STC90LE52RD+', magic=0xf142, total=65536, code=8192, eeprom=55296),
        MCUModel(name='STC90LE54RD+', magic=0xf144, total=65536, code=16384, eeprom=47104),
        MCUModel(name='STC90LE55RD+', magic=0xf145, total=65536, code=20480, eeprom=43008),
        MCUModel(name='STC90LE58RD+', magic=0xf148, total=65536, code=32768, eeprom=30720),
        MCUModel(name='STC90LE510RD+', magic=0xf14a, total=65536, code=40960, eeprom=22528),
        MCUModel(name='STC90LE512RD+', magic=0xf14c, total=65536, code=49152, eeprom=14336),
        MCUModel(name='STC90LE513RD+', magic=0xf14d, total=65536, code=53248, eeprom=10240),
        MCUModel(name='STC90LE514RD+', magic=0xf14e, total=65536, code=57344, eeprom=6144),
        MCUModel(name='STC90LE516RD+', magic=0xf150, total=65536, code=63488, eeprom=0),
        MCUModel(name='STC90C51AD', magic=0xf161, total=65536, code=4096, eeprom=59392),
        MCUModel(name='STC90C52AD', magic=0xf162, total=65536, code=8192, eeprom=55296),
        MCUModel(name='STC90C54AD', magic=0xf164, total=65536, code=16384, eeprom=47104),
        MCUModel(name='STC90C55AD', magic=0xf165, total=65536, code=20480, eeprom=43008),
        MCUModel(name='STC90C58AD', magic=0xf168, total=65536, code=32768, eeprom=30720),
        MCUModel(name='STC90C510AD', magic=0xf16a, total=65536, code=40960, eeprom=22528),
        MCUModel(name='STC90C512AD', magic=0xf16c, total=65536, code=49152, eeprom=14336),
        MCUModel(name='STC90C513AD', magic=0xf16d, total=65536, code=53248, eeprom=10240),
        MCUModel(name='STC90C514AD', magic=0xf16e, total=65536, code=57344, eeprom=6144),
        MCUModel(name='STC90C516AD', magic=0xf170, total=65536, code=63488, eeprom=0),
        MCUModel(name='STC90LE51AD', magic=0xf181, total=65536, code=4096, eeprom=59392),
        MCUModel(name='STC90LE52AD', magic=0xf182, total=65536, code=8192, eeprom=55296),
        MCUModel(name='STC90LE54AD', magic=0xf184, total=65536, code=16384, eeprom=47104),
        MCUModel(name='STC90LE55AD', magic=0xf185, total=65536, code=20480, eeprom=43008),
        MCUModel(name='STC90LE58AD', magic=0xf188, total=65536, code=32768, eeprom=30720),
        MCUModel(name='STC90LE510AD', magic=0xf18a, total=65536, code=40960, eeprom=22528),
        MCUModel(name='STC90LE512AD', magic=0xf18c, total=65536, code=49152, eeprom=14336),
        MCUModel(name='STC90LE513AD', magic=0xf18d, total=65536, code=53248, eeprom=10240),
        MCUModel(name='STC90LE514AD', magic=0xf18e, total=65536, code=57344, eeprom=6144),
        MCUModel(name='STC90LE516AD', magic=0xf190, total=65536, code=63488, eeprom=0),

        # Warning, these definitions lack a valid eeprom size.
        # XXX: It's unknown whether these actually exist, they were removed in STC-ISP.
        MCUModel(name='STC15F04AD', magic=0xd444, total=4096, code=4096, eeprom=0),
        MCUModel(name='STC15F06AD', magic=0xd446, total=6144, code=6144, eeprom=0),
        MCUModel(name='STC15F08AD', magic=0xd448, total=8192, code=8192, eeprom=0),
        MCUModel(name='STC15F10AD', magic=0xd44a, total=10240, code=10240, eeprom=0),
        MCUModel(name='STC15F12AD', magic=0xd44c, total=12288, code=12288, eeprom=0),
        MCUModel(name='STC15F04CCP', magic=0xd434, total=4096, code=4096, eeprom=0),
        MCUModel(name='STC15F06CCP', magic=0xd436, total=6144, code=6144, eeprom=0),
        MCUModel(name='STC15F08CCP', magic=0xd438, total=8192, code=8192, eeprom=0),
        MCUModel(name='STC15F10CCP', magic=0xd43a, total=10240, code=10240, eeprom=0),
        MCUModel(name='STC15F12CCP', magic=0xd43c, total=12288, code=12288, eeprom=0),
        MCUModel(name='STC15F04', magic=0xd404, total=4096, code=4096, eeprom=0),
        MCUModel(name='STC15F06', magic=0xd406, total=6144, code=6144, eeprom=0),
        MCUModel(name='STC15F08', magic=0xd408, total=8192, code=8192, eeprom=0),
        MCUModel(name='STC15F10', magic=0xd40a, total=10240, code=10240, eeprom=0),
        MCUModel(name='STC15F12', magic=0xd40c, total=12288, code=12288, eeprom=0),
        MCUModel(name='IAP15F08AD', magic=0xd458, total=8192, code=8192, eeprom=0),
        MCUModel(name='IAP15F10AD', magic=0xd45a, total=10240, code=10240, eeprom=0),
        MCUModel(name='IAP15F12AD', magic=0xd45c, total=12288, code=12288, eeprom=0),
        MCUModel(name='IAP15F14AD', magic=0xd45e, total=14336, code=14336, eeprom=0),
        MCUModel(name='STC15L04AD', magic=0xd4c4, total=4096, code=4096, eeprom=0),
        MCUModel(name='STC15L06AD', magic=0xd4c6, total=6144, code=6144, eeprom=0),
        MCUModel(name='STC15L08AD', magic=0xd4c8, total=8192, code=8192, eeprom=0),
        MCUModel(name='STC15L10AD', magic=0xd4ca, total=10240, code=10240, eeprom=0),
        MCUModel(name='STC15L12AD', magic=0xd4cc, total=12288, code=12288, eeprom=0),
        MCUModel(name='STC15L04CCP', magic=0xd4b4, total=4096, code=4096, eeprom=0),
        MCUModel(name='STC15L06CCP', magic=0xd4b6, total=6144, code=6144, eeprom=0),
        MCUModel(name='STC15L08CCP', magic=0xd4b8, total=8192, code=8192, eeprom=0),
        MCUModel(name='STC15L10CCP', magic=0xd4ba, total=10240, code=10240, eeprom=0),
        MCUModel(name='STC15L12CCP', magic=0xd4bc, total=12288, code=12288, eeprom=0),
        MCUModel(name='STC15L04', magic=0xd484, total=4096, code=4096, eeprom=0),
        MCUModel(name='STC15L06', magic=0xd486, total=6144, code=6144, eeprom=0),
        MCUModel(name='STC15L08', magic=0xd488, total=8192, code=8192, eeprom=0),
        MCUModel(name='STC15L10', magic=0xd48a, total=10240, code=10240, eeprom=0),
        MCUModel(name='STC15L12', magic=0xd48c, total=12288, code=12288, eeprom=0),
        MCUModel(name='IAP15L08AD', magic=0xd4d8, total=8192, code=8192, eeprom=0),
        MCUModel(name='IAP15L10AD', magic=0xd4da, total=10240, code=10240, eeprom=0),
        MCUModel(name='IAP15L12AD', magic=0xd4dc, total=12288, code=12288, eeprom=0),
        MCUModel(name='IAP15L14AD', magic=0xd4de, total=14336, code=14336, eeprom=0),
    )

    @classmethod
    def find_model(self, magic):
        for model in self.models:
            if model.magic == magic: return model
        raise NameError

    @classmethod
    def print_model_info(self, model):
        print("Target model:")
        print("  Name: %s" % model.name)
        print("  Magic: %02X%02X" % (model.magic >> 8, model.magic & 0xff))
        print("  Code flash: %.1f KB" % (model.code / 1024.0))
        print("  EEPROM flash: %.1f KB" % (model.eeprom / 1024.0))
