diff --git a/assets.ts b/assets.ts index 709b18b8..fca90ef3 100644 --- a/assets.ts +++ b/assets.ts @@ -19,222 +19,37 @@ namespace microcode { extraImage = icondb.sampleRailCrossingLight } - // TODO: factor out all the jacdac stuff into separate file/class - // TODO: so we can generate different builds - function jacdacImages(name: string | number) { - if (name == Tid.TID_FILTER_KITA_KEY_1) return icondb.kita_key_1 - if (name == Tid.TID_FILTER_KITA_KEY_2) return icondb.kita_key_2 - if (name == Tid.TID_SENSOR_SLIDER) return icondb.kita_slider - if (name == Tid.TID_SENSOR_ROTARY) return icondb.kita_rotary - if (name == Tid.TID_FILTER_ROTARY_LEFT) return icondb.kita_rotary_left - if (name == Tid.TID_FILTER_ROTARY_RIGHT) return icondb.kita_rotary_right - if (name == Tid.TID_ACTUATOR_RGB_LED) return icondb.rgbLed - if (name == Tid.TID_MODIFIER_RGB_LED_COLOR_1) - return icondb.tile_color_red - if (name == Tid.TID_MODIFIER_RGB_LED_COLOR_2) - return icondb.tile_color_green - if (name == Tid.TID_MODIFIER_RGB_LED_COLOR_3) - return icondb.tile_color_blue - if (name == Tid.TID_MODIFIER_RGB_LED_COLOR_4) - return icondb.tile_color_magenta - if (name == Tid.TID_MODIFIER_RGB_LED_COLOR_5) - return icondb.tile_color_yellow - if (name == Tid.TID_MODIFIER_RGB_LED_COLOR_6) - return icondb.tile_color_black - if (name == Tid.TID_MODIFIER_RGB_LED_COLOR_RAINBOW) - return icondb.tile_rainbow - if (name == Tid.TID_MODIFIER_RGB_LED_COLOR_SPARKLE) - return icondb.tile_sparkle - if (name == Tid.TID_ACTUATOR_SERVO_SET_ANGLE) - return icondb.servo_set_angle - if (name == Tid.TID_ACTUATOR_SERVO_POWER) return icondb.servo_power - if (name == Tid.TID_ACTUATOR_RELAY) return icondb.relay - if (name == Tid.TID_SENSOR_LIGHT) return icondb.light_sensor - if (name == Tid.TID_SENSOR_DISTANCE) return icondb.distance_sensor - if (name == Tid.TID_SENSOR_MOISTURE) return icondb.soil_moisture - if (name == Tid.TID_SENSOR_REFLECTED) - return icondb.reflected_light_sensor - return null - } - export class icons { public static get( name: string | number, nullIfMissing = false, ): Bitmap { - // editor icons - if (name == "delete") return icondb.btn_delete - if (name == "plus") return icondb.btn_plus - // TODO: add ops and comparisons - if (name == "when_insertion_point") - return icondb.btn_when_insertion_point - if (name == "do_insertion_point") - return icondb.btn_do_insertion_point - if (name == "rule_arrow") return icondb.rule_arrow - if (name == "rule_handle") return icondb.rule_handle - if (name == "rule_up") return icondb.temp_warmer - if (name == "rule_down") return icondb.temp_colder - if (name == "edit_program") return icondb.largeEditIcon - if (name == "largeSettingsGear") return icondb.largeSettingsGear - if (name == "new_program") return icondb.largeNewProgramIcon - if (name == "MISSING") return icondb.MISSING - if (name == "disk") return icondb.disk - if (name == "disk1") return icondb.disk1 - if (name == "disk2") return icondb.disk2 - if (name == "disk3") return icondb.disk3 - if (name == "largeDisk") return icondb.largeDiskIcon - - // basic colors led editor - if (name == "solid_red") return icondb.solid_red - if (name == "led_off") return icondb.led_off - if (name == "note_on") return icondb.note_on - if (name == "note_off") return icondb.note_off - - // sample icons - if (name == "smiley_buttons") return icondb.sampleSmileyButtons - - if (name == "microbitLogo") return icondb.microbitLogo - if (name == "microbit_logo") return icondb.microbit_logo - if (name == "microbitLogoBtn") return icondb.microbit_logo_btn - - // math if (typeof name == "number") { + // math constants render their value if (microcode.isConstant(name)) { return icondb.numberToImage(getParam(name)) } + // operator glyphs are drawn at runtime + if (name == Tid.TID_OPERATOR_DIVIDE) + return icondb.operatorIcon("/") + if (name == Tid.TID_OPERATOR_MINUS) + return icondb.operatorIcon("-") + if (name == Tid.TID_OPERATOR_MULTIPLY) + return icondb.operatorIcon("*") + if (name == Tid.TID_OPERATOR_PLUS) + return icondb.operatorIcon("+") + // all other tids resolve through the flash lookup table + // (see icon-table.g.ts, regenerate with scripts/genicontable.js) + if (name >= 0 && name < 256) { + const idx = TID_ICON_IDX[name] + if (idx) return iconByIndex(idx - 1) + } + } else { + for (let i = 0; i < ICON_NAMES.length; ++i) + if (ICON_NAMES[i] == name) + return iconByIndex(ICON_NAME_IDX[i]) } - // pages - if (name == Tid.TID_SENSOR_START_PAGE) return icondb.tile_start_page - if (name == Tid.TID_ACTUATOR_SWITCH_PAGE) - return icondb.tile_switch_page - if (name == Tid.TID_MODIFIER_PAGE_1) return icondb.tile_page_1 - if (name == Tid.TID_MODIFIER_PAGE_2) return icondb.tile_page_2 - if (name == Tid.TID_MODIFIER_PAGE_3) return icondb.tile_page_3 - if (name == Tid.TID_MODIFIER_PAGE_4) return icondb.tile_page_4 - if (name == Tid.TID_MODIFIER_PAGE_5) return icondb.tile_page_5 - - // looping - if (name == Tid.TID_MODIFIER_LOOP) return icondb.loop - - // variables - if (name == Tid.TID_SENSOR_MAGNET) return icondb.magnet - if (name == Tid.TID_SENSOR_CUP_X_WRITTEN) return icondb.cupXwritten - if (name == Tid.TID_SENSOR_CUP_Y_WRITTEN) return icondb.cupYwritten - if (name == Tid.TID_SENSOR_CUP_Z_WRITTEN) return icondb.cupZwritten - if (name == Tid.TID_FILTER_CUP_X_READ) return icondb.cupXread - if (name == Tid.TID_FILTER_CUP_Y_READ) return icondb.cupYread - if (name == Tid.TID_FILTER_CUP_Z_READ) return icondb.cupZread - if (name == Tid.TID_ACTUATOR_CUP_X_ASSIGN) return icondb.cupXassign - if (name == Tid.TID_ACTUATOR_CUP_Y_ASSIGN) return icondb.cupYassign - if (name == Tid.TID_ACTUATOR_CUP_Z_ASSIGN) return icondb.cupZassign - if (name == Tid.TID_MODIFIER_CUP_X_READ) return icondb.cupXread - if (name == Tid.TID_MODIFIER_CUP_Y_READ) return icondb.cupYread - if (name == Tid.TID_MODIFIER_CUP_Z_READ) return icondb.cupZread - - // function - if (name == Tid.TID_MODIFIER_RANDOM_TOSS) return icondb.diceToss - // micro:bit sensors - if (name == Tid.TID_SENSOR_ACCELEROMETER) - return icondb.accelerometer - if (name == Tid.TID_SENSOR_TIMER) return icondb.tile_timer - if (name == Tid.TID_SENSOR_RADIO_RECEIVE) - return icondb.radio_receive - if (name == Tid.TID_SENSOR_PRESS) return icondb.finger_press - if (name == Tid.TID_SENSOR_RELEASE) return icondb.finger_release - if (name == Tid.TID_SENSOR_MICROPHONE) return icondb.microphone - if (name == Tid.TID_SENSOR_TEMP) return icondb.thermometer - if (name == Tid.TID_SENSOR_LED_LIGHT) return icondb.led_light_sensor - - // micro:bit filters - if (name == Tid.TID_FILTER_LOGO) return icondb.microbit_logo - if (name == Tid.TID_FILTER_PIN_0) return icondb.tile_pin_0 - if (name == Tid.TID_FILTER_PIN_1) return icondb.tile_pin_1 - if (name == Tid.TID_FILTER_PIN_2) return icondb.tile_pin_2 - if (name == Tid.TID_FILTER_BUTTON_A) return icondb.tile_button_a - if (name == Tid.TID_FILTER_BUTTON_B) return icondb.tile_button_b - if (name == Tid.TID_FILTER_TIMESPAN_SHORT) - return icondb.tile_timespan_short - if (name == Tid.TID_FILTER_TIMESPAN_LONG) - return icondb.tile_timespan_long - if (name == Tid.TID_FILTER_TIMESPAN_VERY_LONG) - return icondb.tile_timespan_fiveSeconds - if (name == Tid.TID_FILTER_TIMESPAN_RANDOM) - return icondb.tile_timespan_random - if (name == Tid.TID_FILTER_LOUD) return icondb.speakerFun - if (name == Tid.TID_FILTER_QUIET) return icondb.speakerSoft - if (name == Tid.TID_FILTER_UP) return icondb.temp_warmer - if (name == Tid.TID_FILTER_DOWN) return icondb.temp_colder - if (name == Tid.TID_FILTER_ACCEL_SHAKE) return icondb.moveShake - if (name == Tid.TID_FILTER_ACCEL_TILT_UP) return icondb.moveTiltUp - if (name == Tid.TID_FILTER_ACCEL_TILT_DOWN) - return icondb.moveTiltDown - if (name == Tid.TID_FILTER_ACCEL_TILT_LEFT) - return icondb.moveTiltLeft - if (name == Tid.TID_FILTER_ACCEL_TILT_RIGHT) - return icondb.moveTiltRight - if (name == Tid.TID_FILTER_ACCEL_FACE_UP) return icondb.moveFaceUp - if (name == Tid.TID_FILTER_ACCEL_FACE_DOWN) - return icondb.moveFaceDown - - // micro:bit actuators - if (name == Tid.TID_ACTUATOR_PAINT) return icondb.showScreen - if (name == Tid.TID_ACTUATOR_SHOW_NUMBER) return icondb.showNumber - if (name == Tid.TID_ACTUATOR_RADIO_SEND) return icondb.radio_send - if (name == Tid.TID_ACTUATOR_RADIO_SET_GROUP) - return icondb.radio_set_group_small - if (name == Tid.TID_ACTUATOR_SPEAKER) return icondb.speakerFun - if (name == Tid.TID_ACTUATOR_MUSIC) return icondb.music - - // micro:bit modifiers - if (name == Tid.TID_MODIFIER_ICON_EDITOR) return icondb.iconEditor - if (name == Tid.TID_MODIFIER_MELODY_EDITOR) - return icondb.melodyEditor - if ( - name == Tid.TID_DECIMAL_EDITOR || - name == Tid.TID_POS_INT_EDITOR - ) - return icondb.decimalEditor - - if (name == Tid.TID_MODIFIER_EMOJI_GIGGLE) return icondb.soundGiggle - if (name == Tid.TID_MODIFIER_EMOJI_HAPPY) return icondb.soundHappy - if (name == Tid.TID_MODIFIER_EMOJI_HELLO) return icondb.soundHello - if (name == Tid.TID_MODIFIER_EMOJI_MYSTERIOUS) - return icondb.soundMysterious - if (name == Tid.TID_MODIFIER_EMOJI_SAD) return icondb.soundSad - if (name == Tid.TID_MODIFIER_EMOJI_SLIDE) return icondb.soundSlide - if (name == Tid.TID_MODIFIER_EMOJI_SOARING) - return icondb.soundSoaring - if (name == Tid.TID_MODIFIER_EMOJI_SPRING) return icondb.soundSpring - if (name == Tid.TID_MODIFIER_EMOJI_TWINKLE) - return icondb.soundTwinkle - if (name == Tid.TID_MODIFIER_EMOJI_YAWN) return icondb.soundYawn - - if (name == Tid.TID_MODIFIER_TEMP_READ) return icondb.thermometer - if (name == Tid.TID_MODIFIER_RADIO_READ) return icondb.radio_value - if (name == Tid.TID_MODIFIER_LIGHT_READ) return icondb.light_sensor - if (name == Tid.TID_MODIFIER_MAGNET_READ) return icondb.magnet - if (name == Tid.TID_MODIFIER_MIC_READ) return icondb.microphone - - // operators - - if (name == Tid.TID_OPERATOR_DIVIDE) return icondb.operatorIcon("/") - if (name == Tid.TID_OPERATOR_MINUS) return icondb.operatorIcon("-") - if (name == Tid.TID_OPERATOR_MULTIPLY) - return icondb.operatorIcon("*") - if (name == Tid.TID_OPERATOR_PLUS) return icondb.operatorIcon("+") - if (name == Tid.TID_COMPARE_EQ) return icondb.eq - if (name == Tid.TID_COMPARE_NEQ) return icondb.neq - if (name == Tid.TID_COMPARE_LT) return icondb.lt - if (name == Tid.TID_COMPARE_LTE) return icondb.lte - if (name == Tid.TID_COMPARE_GT) return icondb.gt - if (name == Tid.TID_COMPARE_GTE) return icondb.gte - - // micro:bit car - // const car = carImages(name) - // if (car) return car - // const jacdac = jacdacImages(name) - // if (jacdac) return jacdac extraImage = null extraSamples(name) // only for web app if (extraImage) return extraImage @@ -289,286 +104,6 @@ namespace microcode { } namespace icondb { - export const microbitLogo = bmp` - ............................ - ......5555555555555555...... - ....55555555555555555555.... - ...5554444444444444444555... - ..5554.................555.. - ..554...................554. - .554....55........55.....554 - .55....5555......5555....554 - .55....55554.....55554...554 - .55.....5544......5544...554 - ..55.....44........44...5544 - ..555..................5554. - ...555................55544. - ....5555555555555555555544.. - .....45555555555555555444... - .......4444444444444444..... - ` - - export const microbit_logo_btn = bmp` - . . . . . . . . . . . . . . . . - . . . . . . . . . . . . . . . . - . . . . . . . . . . . . . . . . - . . . . . . . . . . . . . . . . - . . . . f f f f f f f f . . . . - . . . f 1 1 1 1 1 1 1 1 f . . . - . . f 1 1 1 1 1 1 1 1 1 1 f . . - . . f 1 f f 1 1 1 1 f f 1 f . . - . . f 1 f f 1 1 1 1 f f 1 f . . - . . f 1 1 1 1 1 1 1 1 1 1 f . . - . . . f 1 1 1 1 1 1 1 1 f . . . - . . . . f f f f f f f f . . . . - . . . . . . . . . . . . . . . . - . . . . . . . . . . . . . . . . - . . . . . . . . . . . . . . . . - . . . . . . . . . . . . . . . . - ` - - export const MISSING = bmp` - . . . . . . . . . . . . . . . . - . . . . . . . . . . . . . . . . - . . . . . . . . . . . . . . . . - . . . 2 2 2 2 2 2 2 2 2 2 . . . - . . . 2 2 . . . . . . 2 2 . . . - . . . 2 . 2 . . . . 2 . 2 . . . - . . . 2 . . 2 . . 2 . . 2 . . . - . . . 2 . . . 2 2 . . . 2 . . . - . . . 2 . . . 2 2 . . . 2 . . . - . . . 2 . . 2 . . 2 . . 2 . . . - . . . 2 . 2 . . . . 2 . 2 . . . - . . . 2 2 . . . . . . 2 2 . . . - . . . 2 2 2 2 2 2 2 2 2 2 . . . - . . . . . . . . . . . . . . . . - . . . . . . . . . . . . . . . . - . . . . . . . . . . . . . . . . - ` - - export const tile_button_a = bmp` - . . . . . . . . . . . . . . . . - . . . . . . . . . . . . . . . . - . . . . . . . . . . . . 8 . . . - . . . . . . . . . . . 8 8 d . . - . . . . . . . . . . 8 8 8 d . . - . . . . . . . . . 8 8 8 8 d . . - . . . . . . . . 8 8 8 8 8 d . . - . . . . . . . 8 8 8 1 8 8 d . . - . . . . . . 8 8 8 1 8 1 8 d . . - . . . . . 8 8 8 8 1 1 1 8 d . . - . . . . 8 8 8 8 8 1 8 1 8 d . . - . . . 8 8 8 8 8 8 1 8 1 8 d . . - . . 8 8 8 8 8 8 8 8 8 8 8 d . . - . . . d d d d d d d d d d d . . - . . . . . . . . . . . . . . . . - . . . . . . . . . . . . . . . . - ` - - export const tile_button_b = bmp` - . . . . . . . . . . . . . . . . - . . . . . . . . . . . . . . . . - . . 8 8 8 8 8 8 8 8 8 8 8 . . . - . . 8 1 1 8 8 8 8 8 8 8 d d . . - . . 8 1 8 1 8 8 8 8 8 d d . . . - . . 8 1 1 8 8 8 8 8 d d . . . . - . . 8 1 8 1 8 8 8 d d . . . . . - . . 8 1 1 8 8 8 d d . . . . . . - . . 8 8 8 8 8 d d . . . . . . . - . . 8 8 8 8 d d . . . . . . . . - . . 8 8 8 d d . . . . . . . . . - . . 8 8 d d . . . . . . . . . . - . . 8 d d . . . . . . . . . . . - . . . d . . . . . . . . . . . . - . . . . . . . . . . . . . . . . - . . . . . . . . . . . . . . . . - ` - - export const finger_press = bmp` - 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 - 1 1 1 1 1 1 1 f 1 1 1 1 1 1 1 1 - 1 1 1 1 1 1 1 f 1 1 1 1 1 1 1 1 - 1 1 1 1 1 1 1 f 1 1 1 1 1 1 1 1 - 1 1 1 1 1 f 1 f 1 f 1 1 1 1 1 1 - 1 1 1 1 1 1 f f f 1 1 1 1 1 1 1 - 1 1 1 1 1 1 1 f 1 1 1 1 1 1 1 1 - 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 - 1 1 1 1 1 4 4 4 4 4 1 1 1 1 1 1 - 1 1 1 1 4 4 4 4 4 4 4 d 1 1 1 1 - 1 1 1 e 4 4 4 4 4 4 4 e d 1 1 1 - 1 1 1 e 2 4 4 4 4 4 2 e d 1 1 1 - 1 1 1 e e 2 2 2 2 2 e e d 1 1 1 - 1 1 1 1 e e e e e e e d 1 1 1 1 - 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 - 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 - ` - - export const magnet = bmp` - 1 1 1 1 1 1 1 1 1 1 1 1 6 1 1 1 - 1 1 1 1 1 1 1 1 1 1 6 1 1 1 6 1 - 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 - 1 1 1 8 8 8 8 8 f f 1 1 6 1 1 1 - 1 1 8 8 8 8 8 8 f f 1 1 1 1 1 6 - 1 8 8 8 b b b b b b 1 1 6 1 1 1 - 1 8 8 b 1 1 1 1 1 1 1 1 1 1 6 1 - 1 8 8 1 1 1 1 1 1 1 1 6 1 1 1 1 - 1 2 2 1 1 1 1 1 1 1 1 1 1 6 1 1 - 1 2 2 1 1 1 1 1 1 1 1 6 1 1 1 1 - 1 2 2 2 1 1 1 1 1 1 1 1 1 1 6 1 - 1 b 2 2 2 2 2 2 f f 1 1 6 1 1 1 - 1 1 b 2 2 2 2 2 f f 1 1 1 1 1 1 - 1 1 1 b b b b b b b 1 1 6 1 1 1 - 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 - 1 1 1 1 1 1 1 1 1 1 6 1 1 1 1 1 - ` - - export const thermometer = bmp` - 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 - 1 1 1 1 1 1 1 f 1 1 1 1 1 1 1 1 - 1 1 1 1 1 1 f d f 1 1 1 1 1 1 1 - 1 1 1 1 1 1 f d f 1 1 1 1 1 1 1 - 1 1 1 1 1 1 f d f 1 1 1 1 1 1 1 - 1 1 1 1 1 1 f d f 1 1 1 1 1 1 1 - 1 1 1 1 1 1 f 2 f 1 1 1 1 1 1 1 - 1 1 1 1 1 1 f 2 f 1 1 1 1 1 1 1 - 1 1 1 1 1 1 f 2 f 1 1 1 1 1 1 1 - 1 1 1 1 1 1 f 2 f 1 1 1 1 1 1 1 - 1 1 1 1 1 f 2 2 2 f 1 1 1 1 1 1 - 1 1 1 1 f 2 2 2 2 2 f 1 1 1 1 1 - 1 1 1 1 f 2 2 2 2 2 f 1 1 1 1 1 - 1 1 1 1 1 f 2 2 2 f 1 1 1 1 1 1 - 1 1 1 1 1 1 f f f 1 1 1 1 1 1 1 - 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 - ` - - export const led_light_sensor = bmp` - 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 - 1 1 8 8 8 8 5 5 5 8 8 8 8 1 1 1 - 1 1 8 8 8 5 4 4 4 5 8 8 8 1 1 1 - 1 1 8 8 8 5 4 4 4 5 8 8 8 1 1 1 - 1 1 8 8 8 5 4 4 4 5 8 8 8 1 1 1 - 1 1 8 8 8 8 5 5 5 8 8 8 8 1 1 1 - 1 1 8 8 5 8 8 8 8 8 5 8 8 1 1 1 - 1 1 8 5 8 8 8 5 8 8 8 5 8 1 1 1 - 1 1 8 8 8 5 8 8 8 5 8 8 8 1 1 1 - 1 1 8 8 5 8 8 5 8 8 5 8 8 1 1 1 - 1 1 8 5 8 8 8 8 8 8 8 5 8 1 1 1 - 1 1 8 8 8 8 8 5 8 8 8 8 8 1 1 1 - 1 1 8 8 8 8 8 8 8 8 8 8 8 1 1 1 - 1 1 8 8 8 2 2 2 2 2 8 8 8 1 1 1 - 1 1 8 f f f f f f f f f 8 1 1 1 - 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 - ` - - export const microphone = bmp` - 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 - 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 - 1 1 1 1 1 1 b c 1 1 1 1 1 1 1 1 - 1 1 1 1 1 1 b c c c 1 1 1 1 1 1 - 1 1 1 1 1 1 b c c c 1 1 1 1 1 1 - 1 1 1 1 1 1 b c c c 1 1 1 1 1 1 - 1 1 1 1 1 1 b c c c 1 1 1 1 1 1 - 1 1 1 1 f 1 c c c c 1 f 1 1 1 1 - 1 1 1 1 f 1 c c c c 1 f 1 1 1 1 - 1 1 1 1 f 1 1 c c 1 1 f 1 1 1 1 - 1 1 1 1 1 f 1 1 1 1 f 1 1 1 1 1 - 1 1 1 1 1 1 f f f f 1 1 1 1 1 1 - 1 1 1 1 1 1 1 f f 1 1 1 1 1 1 1 - 1 1 1 1 1 1 1 f f 1 1 1 1 1 1 1 - 1 1 1 1 1 f f f f f f 1 1 1 1 1 - 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 - ` - - export const accelerometer = bmp` - 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 - 1 1 1 1 1 1 1 1 8 1 1 1 1 1 1 1 - 1 1 1 1 1 1 1 8 8 8 1 1 1 1 1 1 - 1 1 1 1 1 1 8 8 8 8 8 1 1 1 1 1 - 1 1 1 1 1 1 6 6 8 6 6 1 1 1 1 1 - 1 1 1 1 1 1 1 1 8 1 1 1 1 1 1 1 - 1 1 8 6 1 1 f f f f f 1 1 1 1 1 - 1 8 8 6 1 f 1 1 1 1 1 f 1 1 1 1 - 8 8 8 8 8 f 1 f 1 f 1 f 1 1 1 1 - 1 8 8 6 1 f 1 1 1 1 1 f 1 1 1 1 - 1 1 8 6 1 1 f f f f f 8 1 1 6 1 - 1 1 1 1 1 1 1 1 1 1 1 1 8 6 8 1 - 1 1 1 1 1 1 1 1 1 1 1 1 6 8 8 1 - 1 1 1 1 1 1 1 1 1 1 1 6 8 8 8 1 - 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 - 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 - ` - - export const largeEditIcon = bmp` - .666666666666666666666666666666. - 66666666666666666666666666666666 - 66666666666666666666666666666666 - 666666666666666666666666ee666666 - 66666666666666666666666e44e66666 - 6666666666666666666666ee442e6666 - 666666666666666666666e15e222e666 - 66666666666666666666e155ee2ee666 - 6666666666666666666e155e44eee666 - 666666666666666666e155e44eee6666 - ccccccccccccccccce155e44eeeccccc - bbbbbbbbbbbbbbbbe155e44eeebbbbbb - bbbbbbbbbbbbbbbe155e44eeebbbbbbb - 111111bbb11111e155e44eeebcbcbcbb - 1111111b11111e155e44eeebbbbbbbcb - 1111111b1111ede5e44eeebbbbbbbbbb - 1111111b1111edde44eeebbbbbbbbbcb - 1111111b1111edddeeeebbbbb1bbbbbb - 1111111b1111eedddeebcbbb111bbbcb - 1111111b1111eeeeee1bbbbbc1cbbbbb - 1111111b11111111111bcbbbbcbbbbcb - 1111111b11111111111bbbbbbbbbbbbb - 111111cbc111111111cbcbbbbbbbbbcb - ccccccbbbcccccccccbbbcbcbcbcbcbb - bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb - bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb - cccccccccccccccccccccccccccccccc - 66666666666666666666666666666666 - 66666666666666666666666666666666 - 66666666666666666666666666666666 - 66666666666666666666666666666666 - b666666666666666666666666666666b - .bbbbbbbbbbbbbbbbbbbbbbbbbbbbbb. - ` - - export const largeSettingsGear = bmp` - 66666666666666666666666666666666 - 66666666666666666666666666666666 - 666666666666666dd666666666666666 - 66666666666666dddd66666666666666 - 66666dddd666ddbbbbcc666dddd66666 - 66666dddd666ddbbbbcc666dddd66666 - 666dddbbbb66ddbbbbcc66dbbbccc666 - 666dddbbbbccddbbbbccdddbbbccc666 - 6666ddbbbbbbbbbbbbbbbbbbbbcc6666 - 66666dbbbbbbbbbbbbbbbbbbbbc66666 - 666666ccbbddbbccccbbddbbcc666666 - 666666ccbbddbbc66cbbddbbcc666666 - 66666dddbbbbcc6666ccbbbbdddd6666 - 6666ddddbbbbc666666cbbbbdddd6666 - 666dbbbbbbcc66666666ccbbbbbbc666 - 6dddbbbbbbc6666666666cbbbbbbccc6 - 6dddbbbbbbc6666666666cbbbbbbccc6 - 6dddbbbbbbcc66666666ccbbbbbbccc6 - 666cccccbbbbc6666666cbbbbcccc666 - 6666ccccbbbbcc66666ccbbbbccc6666 - 666666ddbbddbbc66cbbddbbcc666666 - 666666ddbbddbbccccbbddbbcc666666 - 66666dbbbbbbbbbbbbbbbbbbbbc66666 - 6666ddbbbbbbbbbbbbbbbbbbbbcc6666 - 6666ddbbbbccccbbbbccccbbbbcc6666 - 6666ddbbbb66ccbbbbcc66bbbbcc6666 - 66666cccc666ccbbbbcc666cccc66666 - 66666cccc666ccbbbbcc666cccc66666 - 66666666666666cccc66666666666666 - 666666666666666cc666666666666666 - 66666666666666666666666666666666 - 66666666666666666666666666666666 - ` - export const lt = bitmaps.create(11, 11) lt.drawLine(2, 5, 8, 2, 15) lt.drawLine(2, 5, 8, 8, 15) @@ -640,24 +175,6 @@ namespace icondb { return ret } - export const iconEditor = bmp` - f f f f f f f f f f f f f f f f - f f f f f f f f f f f f f f f f - f f f f f f f f f f f f f f f f - f f f f e e f f f f e e f f f f - f f f e 2 2 e f f e 2 2 e f f f - f f f e 2 2 e f f e 2 2 e f f f - f f f f e e f f f f e e f f f f - f f f f f f f f f f f f f f f f - f f f f f f f f f f f f f f f f - f e e f f f f f f f f f f e e f - e 2 2 e f f f f f f f f e 2 2 e - e 2 2 e f f f f f f f f e 2 2 e - f e e f e e f e e f e e f e e f - f f f e 2 2 e 2 2 e 2 2 e f f f - f f f e 2 2 e 2 2 e 2 2 e f f f - f f f f e e f e e f e e f f f f - ` function renderImg(i: Bitmap) { let r = "" for (let y = 0; y < i.height; ++y) { @@ -675,174 +192,6 @@ namespace icondb { tempo: 0, }) */ - export const melodyEditor = bmp` - 1111111111111111 - 111111111ff11111 - 11111111fcc11111 - 11111111fcc11111 - 1111111111111111 - 1111111111111111 - 1111111111111111 - 11111ff111111111 - 1111fcc111111111 - 1111fcc111111111 - 1111111111111111 - 1111111111111111 - 1111111111111111 - 1ff1111111111ff1 - fcc111111111fcc1 - fcc111111111fcc1 - ` - - export const disk = bmp` - . . . . . . . . . . . . . . . . - . . 8 d d d d 8 8 d d 8 . . . . - . . 8 d d d d 8 8 d d 8 8 . . . - . . 8 d d d d 8 8 d d 8 8 8 . . - . . 8 d d d d d d d d 8 8 8 . . - . . 8 8 8 8 8 8 8 8 8 8 8 8 . . - . . 8 8 3 3 3 3 3 3 3 3 8 8 d . - . . 8 8 1 1 1 1 1 1 1 1 8 8 d . - . . 8 8 1 1 1 1 1 1 1 1 8 8 d . - . . 8 8 1 1 1 1 1 1 1 1 8 8 d . - . . 8 8 1 1 1 1 1 1 1 1 8 8 d . - . . 8 8 1 1 1 1 1 1 1 1 8 8 d . - . . 8 8 1 1 1 1 1 1 1 1 8 8 d . - . . 8 8 1 1 1 1 1 1 1 1 8 8 . . - . . . . . . . . . . . . . . . . - . . . . . . . . . . . . . . . . -` - - export const disk1 = bmp` - . . . . . . . . . . . . . . . . - . . 8 d d d d 8 8 d d 8 . . . . - . . 8 d d d d 8 8 d d 8 8 . . . - . . 8 d d d d 8 8 d d 8 8 8 . . - . . 8 d d d d d d d d 8 8 8 . . - . . 8 8 8 8 8 8 8 8 8 8 8 8 d . - . . 8 8 3 3 3 3 3 3 3 3 8 8 d . - . . 8 8 1 1 1 1 1 1 1 1 8 8 d . - . . 8 8 1 1 1 1 f 1 1 1 8 8 d . - . . 8 8 1 1 1 f f 1 1 1 8 8 d . - . . 8 8 1 1 1 1 f 1 1 1 8 8 d . - . . 8 8 1 1 1 1 f 1 1 1 8 8 d . - . . 8 8 1 1 1 f f f 1 1 8 8 d . - . . 8 8 1 1 1 1 1 1 1 1 8 8 . . - . . . . . . . . . . . . . . . . - . . . . . . . . . . . . . . . . -` - - export const disk2 = bmp` - . . . . . . . . . . . . . . . . - . . 8 d d d d 8 8 d d 8 . . . . - . . 8 d d d d 8 8 d d 8 8 . . . - . . 8 d d d d 8 8 d d 8 8 8 . . - . . 8 d d d d d d d d 8 8 8 . . - . . 8 8 8 8 8 8 8 8 8 8 8 8 d . - . . 8 8 3 3 3 3 3 3 3 3 8 8 d . - . . 8 8 1 1 1 1 1 1 1 1 8 8 d . - . . 8 8 1 1 1 f f 1 1 1 8 8 d . - . . 8 8 1 1 1 1 1 f 1 1 8 8 d . - . . 8 8 1 1 1 1 f 1 1 1 8 8 d . - . . 8 8 1 1 1 f 1 1 1 1 8 8 d . - . . 8 8 1 1 1 f f f 1 1 8 8 d . - . . 8 8 1 1 1 1 1 1 1 1 8 8 . . - . . . . . . . . . . . . . . . . - . . . . . . . . . . . . . . . . -` - - export const disk3 = bmp` - . . . . . . . . . . . . . . . . - . . 8 d d d d 8 8 d d 8 . . . . - . . 8 d d d d 8 8 d d 8 8 . . . - . . 8 d d d d 8 8 d d 8 8 8 . . - . . 8 d d d d d d d d 8 8 8 . . - . . 8 8 8 8 8 8 8 8 8 8 8 8 d . - . . 8 8 3 3 3 3 3 3 3 3 8 8 d . - . . 8 8 1 1 1 1 1 1 1 1 8 8 d . - . . 8 8 1 1 1 f f 1 1 1 8 8 d . - . . 8 8 1 1 1 1 1 f 1 1 8 8 d . - . . 8 8 1 1 1 1 f f 1 1 8 8 d . - . . 8 8 1 1 1 1 1 f 1 1 8 8 d . - . . 8 8 1 1 1 f f 1 1 1 8 8 d . - . . 8 8 1 1 1 1 1 1 1 1 8 8 . . - . . . . . . . . . . . . . . . . - . . . . . . . . . . . . . . . . -` - - export const largeDiskIcon = bmp` - .666666666666666666666666666666. - 66666666666666666666666666666666 - 66666666666666666666666666666666 - 66666bbbbbbbbbbbbbbbbbbbb6666666 - 6666bb8cdddddddddddd888c8b666666 - 6666b88cdddddddc88dd888c88b66666 - 6666b88cddddddd888dd888c888b6666 - 6666b88cddddddd888dd888c888b6666 - 6666b88cddddddd888dd888c888b6666 - 6666b88cddddddd888dd888c888b6666 - 6666b88cdddddddddddd888c888b6666 - 6666b88ccccccccccccccccc888b6666 - 6666b8888888888888888888888b6666 - 6666b8888888888888888888888b6666 - 6666b8833333333333333333888b6666 - 6666b8833333333333333333888b6666 - 6666b8811111111111111111888b6666 - 6666b8811111111111111111888b6666 - 6666b8811ccccc1111111111888b6666 - 6666b8811111111111111111888b6666 - 6666b8811ccc111111111111888b6666 - 6666b8811111111111111111888b6666 - 6666b8811ccccccc11111111888b6666 - 6666b8811111111111111111888b6666 - 6666b8811111111111111111888b6666 - 6666b88111111111111111118f8b6666 - 6666b88111111111111111118f8b6666 - 6666bb811111111111111111888b6666 - 66666bbbbbbbbbbbbbbbbbbbbbbb6666 - 66666666666666666666666666666666 - 66666666666666666666666666666666 - b666666666666666666666666666666b - .bbbbbbbbbbbbbbbbbbbbbbbbbbbbbb. -` - - export const solid_red = bmp` - . . . . . . . . . . . . . . . . - . . . 2 2 2 2 2 2 2 2 2 2 . . . - . . 2 2 4 4 4 4 4 4 4 4 2 2 . . - . . 2 4 4 4 4 4 4 4 4 4 4 2 . . - . . 2 4 4 4 4 4 4 4 4 4 4 2 . . - . . 2 4 4 4 4 4 4 4 4 4 4 2 . . - . . 2 4 4 4 4 4 4 4 4 4 4 2 . . - . . 2 4 4 4 4 4 4 4 4 4 4 2 . . - . . 2 4 4 4 4 4 4 4 4 4 4 2 . . - . . 2 4 4 4 4 4 4 4 4 4 4 2 . . - . . 2 4 4 4 4 4 4 4 4 4 4 2 . . - . . 2 4 4 4 4 4 4 4 4 4 4 2 . . - . . 2 4 4 4 4 4 4 4 4 4 4 2 . . - . . 2 2 4 4 4 4 4 4 4 4 2 2 . . - . . . 2 2 2 2 2 2 2 2 2 2 . . . - . . . . . . . . . . . . . . . . -` - - export const led_off = bmp` - . . . . . . . . . . . . . . . . - . . . c c c c c c c c c c . . . - . . c c c c c c c c c c c c . . - . . c c c c c c c c c c c c . . - . . c c c c c c c c c c c c . . - . . c c c c c c c c c c c c . . - . . c c c c c c c c c c c c . . - . . c c c c c c c c c c c c . . - . . c c c c c c c c c c c c . . - . . c c c c c c c c c c c c . . - . . c c c c c c c c c c c c . . - . . c c c c c c c c c c c c . . - . . c c c c c c c c c c c c . . - . . c c c c c c c c c c c c . . - . . . c c c c c c c c c c . . . - . . . . . . . . . . . . . . . . -` export const arm_open = bmp` . . . . . . . . . . c c c . . . @@ -903,44 +252,6 @@ namespace icondb { . . . . . . . . . . . . . . . . ` - export const btn_delete = bmp` - . . . . . . . . . . . . . . . . - . . . . . . . . . . . . . . . . - . . . . . . c f f . . . . . . . - . . . . . c . . . f . . . . . . - . . . . c c c f f f f . . . . . - . . . c 1 1 d d d b b f . . . . - . . c c c c c f f f f f f . . . - . . . c b c b c b c c f . . . . - . . . c 1 c d c d c b f d . . . - . . . c 1 c d c d c b f d . . . - . . . c 1 c d c d c b f d . . . - . . . c 1 1 d d d b b f d . . . - . . . c 1 1 d d d b b f d . . . - . . . . c c c f f f f d . . . . - . . . . . . . . . . . . . . . . - . . . . . . . . . . . . . . . . - ` - - export const btn_plus = bmp` - . . . . . . . . . . . . . . . . - . . . . . . . . . . . . . . . . - . . . . . . . . . . . . . . . . - . . . . . . f f f f . . . . . . - . . . . . . f 5 5 f . . . . . . - . . . . . . f 5 5 f . . . . . . - . . . f f f f 5 5 f f f f . . . - . . . f 5 5 5 5 5 5 5 5 f . . . - . . . f 5 5 5 5 5 5 5 5 f . . . - . . . f f f f 5 5 f f f f . . . - . . . . . . f 5 5 f . . . . . . - . . . . . . f 5 5 f . . . . . . - . . . . . . f f f f . . . . . . - . . . . . . . . . . . . . . . . - . . . . . . . . . . . . . . . . - . . . . . . . . . . . . . . . . - ` - export const arith_plus = bmp` . . . . . . . . . . . f f . . . @@ -964,1378 +275,17 @@ namespace icondb { ` - export const loop = bmp` - 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 - 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 - 4 4 4 f f f f 4 4 4 4 4 4 4 4 4 - 4 4 4 c c c c f 4 4 4 4 4 4 4 4 - 4 4 4 1 1 1 1 1 f 4 4 4 4 4 4 4 - 4 4 4 4 4 4 c 1 1 4 1 4 4 4 1 4 - 4 4 4 4 4 4 4 c 1 4 4 1 4 1 4 4 - 4 4 4 4 f 4 4 c 1 4 4 4 1 4 4 4 - 4 4 4 f c 4 f c 1 4 4 1 4 1 4 4 - 4 4 f c 1 f c 1 1 4 1 4 4 4 1 4 - 4 4 c 1 1 c 1 1 4 4 4 4 4 4 4 4 - 4 4 1 1 1 1 1 4 4 4 4 4 4 4 4 4 - 4 4 4 1 1 4 4 4 4 4 4 4 4 4 4 4 - 4 4 4 4 1 4 4 4 4 4 4 4 4 4 4 4 - 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 - . . . . . . . . . . . . . . . . - ` - - export const btn_when_insertion_point = bmp` - dddddddddddddddddd - dcddcddcddcddcddcd - dddddddddddddddddd - dddddddddddddddddd - dcddddddddddddddcd - dddddddddddddddddd - dddddddddddddddddd - dcddddddddddddddcd - dddddddddddddddddd - dddddddddddddddddd - dcddddddddddddddcd - dddddddddddddddddd - dddddddddddddddddd - dcddddddddddddddcd - dddddddddddddddddd - dddddddddddddddddd - dcddcddcddcddcddcd - dddddddddddddddddd - ` - - export const btn_do_insertion_point = bmp` - bbbbbbbbbbbbbbbbbb - bdbbdbbdbbdbbdbbdb - bbbbbbbbbbbbbbbbbb - bbbbbbbbbbbbbbbbbb - bdbbbbbbbbbbbbbbdb - bbbbbbbbbbbbbbbbbb - bbbbbbbbbbbbbbbbbb - bdbbbbbbbbbbbbbbdb - bbbbbbbbbbbbbbbbbb - bbbbbbbbbbbbbbbbbb - bdbbbbbbbbbbbbbbdb - bbbbbbbbbbbbbbbbbb - bbbbbbbbbbbbbbbbbb - bdbbbbbbbbbbbbbbdb - bbbbbbbbbbbbbbbbbb - bbbbbbbbbbbbbbbbbb - bdbbdbbdbbdbbdbbdb - bbbbbbbbbbbbbbbbbb - ` - - export const rule_arrow = bmp` - d d d . . . . . . . . . . . - d d d d . . . . . . . . . . - d d d d d . . . . . . . . . - d d d d d d . . . . . . . . - d d d d d d d . . . . . . . - d d d d d d d d . . . . . . - d d d d d d d d d . . . . . - d d d d d d d d d d . . . . - d d d d d d d d d d d . . . - d d d d d d d d d d d d . . - d d d d d d d d d d d d . . - d d d d d d d d d d d . . . - d d d d d d d d d d . . . . - d d d d d d d d d . . . . . - d d d d d d d d . . . . . . - d d d d d d d . . . . . . . - d d d d d d . . . . . . . . - d d d d d . . . . . . . . . - d d d d . . . . . . . . . . - d d d . . . . . . . . . . . -` - - export const showScreen = bmp` - . . . . . . . . . . . . . . . . - . . . . . . . . . . . . 2 4 . . - . . . . 2 . . . . . . 2 4 4 2 . - . . . . 2 . . . . . 2 4 4 2 e . - . 2 . . 2 . . . . 2 4 4 2 e b . - . . 2 . 2 . . . 2 4 4 2 e b . . - . . . . . . . d 4 4 2 e b . . . - . . f f f f f d d 2 e b . . . . - . . f f f f f 2 d d b . . . . . - . . f f 2 f 2 f f b . . . . . . - . . f f f f f f f b . 2 2 2 2 . - . . f 2 f f f 2 f b . . . . . . - . . f f 2 2 2 f f b . 2 . . . . - . . f f f f f f f b . . 2 . . . - . . . b b b b b b b . . . . . . - . . . . . . . . . . . . . . . . -` - - export const showNumber = bmp` - . . . . . . . . . . 4 4 4 4 4 4 - . . . . . . . . . 4 5 5 5 5 5 5 - . . . . 2 . . . 4 5 4 4 4 4 4 4 - . . . . 2 . . . 4 5 4 . . . . . - . 2 . . 2 . . . 4 5 4 . . . . . - . . 2 . 2 . 4 5 5 5 5 5 4 . . . - . . . . . . . 4 5 5 5 4 . . . . - . . f f f f f f 4 5 4 . . . . . - . . f f f 2 2 f f b . . . . . . - . . f f 2 f 2 f f b . . . . . . - . . f 2 f f 2 f f b . 2 2 2 2 . - . . f 2 2 2 2 2 f b . . . . . . - . . f f f f 2 f f b . 2 . . . . - . . f f f f f f f b . . 2 . . . - . . . b b b b b b b . . . . . . - . . . . . . . . . . . . . . . . - ` - /// /// GENERIC LANGUAGE TILES (NOT HARDWARE SPECIFIC) /// - export const rule_handle = bmp` - . f f f f f f f . - f 1 1 1 1 1 1 1 f - f 1 1 1 1 1 1 1 f - f 1 1 1 1 1 1 1 f - f 1 1 1 1 1 1 1 f - f 1 1 1 1 1 1 1 f - f 1 1 1 1 1 1 1 f - f 1 1 1 1 1 1 1 f - . f f f f f f f . - ` - - export const tile_switch_page = bmp` - . . . . . . . . . . . . . . . . - . . . . . . . . . . . . . . . . - . . . . . f f f f . . . . . . . - . . . . f f 9 9 f . . . . . . . - . . . f 9 f 9 9 f d f f f f . . - . . f f f f 9 9 f f f 7 7 f . . - . . f 9 9 9 9 9 f 7 f 7 7 f d . - . . f 9 9 9 9 f f f f 7 7 f d . - . . f 9 9 9 9 f 5 f 7 7 7 f d . - . . f 9 f f f f 5 5 f 7 7 f d . - . . f 9 f 5 5 5 5 5 5 f 7 f d . - . . f f f f f f 5 5 f 7 7 f d . - . . . d d d d f 5 f 7 7 7 f d . - . . . . . . . f f f f f f f d . - . . . . . . . . d d d d d d d . - . . . . . . . . . . . . . . . . - ` - - export const tile_start_page = bmp` - . . . . . . . . . . . . . . . . - . . . . . . . . . . . . . . . . - . . . . . . . . . . . . . . . . - . . . . . . . . . f f f f . . . - . . . . . . . . f f 7 7 f . . . - . . . . . . . f 7 f 7 7 f d . . - . . . . . . f f f f 7 7 f d . . - . . . . . . f 5 f 7 7 7 f d . . - . . . f f f f 5 5 f 7 7 f d . . - . . . f 5 5 5 5 5 5 f 7 f d . . - . . . f f f f 5 5 f 7 7 f d . . - . . . d d d f 5 f 7 7 7 f d . . - . . . . . . f f f f f f f d . . - . . . . . . . d d d d d d d . . - . . . . . . . . . . . . . . . . - . . . . . . . . . . . . . . . . - ` - - export const tile_page_1 = bmp` - . . . . . . . . . . . . . . . . - . . . . . . . . . . . . . . . . - . . . . . . f f f f f f f . . . - . . . . . f f 9 9 9 9 9 f . . . - . . . . f 9 f 9 9 9 9 9 f . . . - . . . f f f f 9 9 9 9 9 f . . . - . . . f 9 9 9 9 9 9 9 9 f . . . - . . . f 9 9 9 f f 9 9 9 f . . . - . . . f 9 9 9 9 f 9 9 9 f . . . - . . . f 9 9 9 9 f 9 9 9 f . . . - . . . f 9 9 9 9 f 9 9 9 f . . . - . . . f 9 9 9 f f f 9 9 f . . . - . . . f 9 9 9 9 9 9 9 9 f . . . - . . . f f f f f f f f f f . . . - . . . . . . . . . . . . . . . . - . . . . . . . . . . . . . . . . - ` - export const tile_page_2 = bmp` - . . . . . . . . . . . . . . . . - . . . . . . . . . . . . . . . . - . . . . . . f f f f f f f . . . - . . . . . f f 5 5 5 5 5 f . . . - . . . . f 5 f 5 5 5 5 5 f . . . - . . . f f f f 5 5 5 5 5 f . . . - . . . f 5 5 5 5 5 5 5 5 f . . . - . . . f 5 5 5 f f 5 5 5 f . . . - . . . f 5 5 f 5 5 f 5 5 f . . . - . . . f 5 5 5 5 f 5 5 5 f . . . - . . . f 5 5 5 f 5 5 5 5 f . . . - . . . f 5 5 f f f f 5 5 f . . . - . . . f 5 5 5 5 5 5 5 5 f . . . - . . . f f f f f f f f f f . . . - . . . . . . . . . . . . . . . . - . . . . . . . . . . . . . . . . - ` - export const tile_page_3 = bmp` - . . . . . . . . . . . . . . . . - . . . . . . . . . . . . . . . . - . . . . . . f f f f f f f . . . - . . . . . f f 4 4 4 4 4 f . . . - . . . . f 4 f 4 4 4 4 4 f . . . - . . . f f f f 4 4 4 4 4 f . . . - . . . f 4 4 4 4 4 4 4 4 f . . . - . . . f 4 4 4 f f 4 4 4 f . . . - . . . f 4 4 4 4 4 f 4 4 f . . . - . . . f 4 4 4 4 f 4 4 4 f . . . - . . . f 4 4 4 4 4 f 4 4 f . . . - . . . f 4 4 4 f f 4 4 4 f . . . - . . . f 4 4 4 4 4 4 4 4 f . . . - . . . f f f f f f f f f f . . . - . . . . . . . . . . . . . . . . - . . . . . . . . . . . . . . . . - ` - export const tile_page_4 = bmp` - . . . . . . . . . . . . . . . . - . . . . . . . . . . . . . . . . - . . . . . . f f f f f f f . . . - . . . . . f f 3 3 3 3 3 f . . . - . . . . f 3 f 3 3 3 3 3 f . . . - . . . f f f f 3 3 3 3 3 f . . . - . . . f 3 3 3 3 3 3 3 3 f . . . - . . . f 3 3 f 3 f 3 3 3 f . . . - . . . f 3 3 f 3 f 3 3 3 f . . . - . . . f 3 3 f f f f 3 3 f . . . - . . . f 3 3 3 3 f 3 3 3 f . . . - . . . f 3 3 3 3 f 3 3 3 f . . . - . . . f 3 3 3 3 3 3 3 3 f . . . - . . . f f f f f f f f f f . . . - . . . . . . . . . . . . . . . . - . . . . . . . . . . . . . . . . - ` - export const tile_page_5 = bmp` - . . . . . . . . . . . . . . . . - . . . . . . . . . . . . . . . . - . . . . . . f f f f f f f . . . - . . . . . f f 7 7 7 7 7 f . . . - . . . . f 7 f 7 7 7 7 7 f . . . - . . . f f f f 7 7 7 7 7 f . . . - . . . f 7 7 7 7 7 7 7 7 f . . . - . . . f 7 7 f f f f 7 7 f . . . - . . . f 7 7 f 7 7 7 7 7 f . . . - . . . f 7 7 f f f 7 7 7 f . . . - . . . f 7 7 7 7 7 f 7 7 f . . . - . . . f 7 7 f f f 7 7 7 f . . . - . . . f 7 7 7 7 7 7 7 7 f . . . - . . . f f f f f f f f f f . . . - . . . . . . . . . . . . . . . . - . . . . . . . . . . . . . . . . - ` - /// /// HARDWARE-SPECIFIC LANGUAGE TILES /// - export const tile_timer = bmp` - . . . . . . . . . . . . . . . . - . . . . . . . . . . . . . . . . - . . . . . . . f . . . . . . . . - . . . . . b b b b b . . . . . . - . . . . b 1 1 9 9 9 b . . . . . - . . . b 1 1 1 b 9 9 9 c . . . . - . . b 1 1 d 1 b 9 b 9 9 c . . . - . . b 1 1 1 1 9 9 9 9 9 c d . . - . . b 1 d d 1 2 2 2 2 9 c d . . - . . b 1 1 1 1 1 1 1 1 1 c d . . - . . b 1 1 d 1 d 1 d 1 1 c d . . - . . . b 1 1 1 d 1 1 1 c d . . . - . . . . c 1 1 1 1 1 c d . . . . - . . . . . c c c c c d . . . . . - . . . . . . . . . . . . . . . . - . . . . . . . . . . . . . . . . - ` - export const tile_timespan_short = bmp` - . . . . . . . . . . . . . . . . - . . . . . . . . . . . . . . . . - . . . b b b b b b b b b b . . . - . . b 1 1 1 1 1 1 1 1 1 1 c . . - . . b 1 1 2 1 1 1 1 1 1 1 c . . - . . b 1 1 2 1 1 1 1 1 1 1 c d . - . . b 1 1 1 1 1 1 1 1 1 1 c d . - . . b 1 2 2 2 1 1 1 f f 1 c d . - . . b 1 1 1 1 1 1 f 1 1 1 c d . - . . b 1 2 1 2 1 1 1 f 1 1 c d . - . . b 1 2 2 2 1 1 1 1 f 1 c d . - . . b 1 1 1 2 1 1 f f 1 1 c d . - . . b 1 1 1 1 1 1 1 1 1 1 c d . - . . . c c c c c c c c c c d . . - . . . . . . . . . . . . . . . . - . . . . . . . . . . . . . . . . - ` - export const tile_timespan_long = bmp` - . . . . . . . . . . . . . . . . - . . . . . . . . . . . . . . . . - . . . b b b b b b b b b b . . . - . . b 1 1 1 1 1 1 1 1 1 1 c . . - . . b 1 1 1 1 1 1 1 1 1 1 c . . - . . b 1 1 1 2 1 1 1 1 1 1 c d . - . . b 1 1 2 2 1 1 1 1 1 1 c d . - . . b 1 1 1 2 1 1 1 f f 1 c d . - . . b 1 1 1 2 1 1 f 1 1 1 c d . - . . b 1 1 1 2 1 1 1 f 1 1 c d . - . . b 1 1 1 2 1 1 1 1 f 1 c d . - . . b 1 1 2 2 2 1 f f 1 1 c d . - . . b 1 1 1 1 1 1 1 1 1 1 c d . - . . . c c c c c c c c c c d . . - . . . . . . . . . . . . . . . . - . . . . . . . . . . . . . . . . - ` - export const tile_timespan_fiveSeconds = bmp` - . . . . . . . . . . . . . . . . - . . . . . . . . . . . . . . . . - . . . b b b b b b b b b b . . . - . . b 1 1 1 1 1 1 1 1 1 1 c . . - . . b 1 1 1 1 1 1 1 1 1 1 c . . - . . b 1 2 2 2 2 1 1 1 1 1 c d . - . . b 1 2 1 1 1 1 1 1 1 1 c d . - . . b 1 2 2 2 1 1 1 f f 1 c d . - . . b 1 1 1 1 2 1 f 1 1 1 c d . - . . b 1 1 1 1 2 1 1 f 1 1 c d . - . . b 1 1 1 1 2 1 1 1 f 1 c d . - . . b 1 2 2 2 1 1 f f 1 1 c d . - . . b 1 1 1 1 1 1 1 1 1 1 c d . - . . . c c c c c c c c c c d . . - . . . . . . . . . . . . . . . . - . . . . . . . . . . . . . . . . - ` - export const tile_timespan_random = bmp` - . . . . . . . . . . . . . . . . - . . . . . . . . . . . . . . . . - . . . b b b b b b b b b b . . . - . . b 1 1 1 1 1 1 1 1 1 1 c . . - . . b 1 1 1 1 1 1 1 1 1 1 c . . - . . b 1 1 2 2 1 1 1 1 1 1 c d . - . . b 1 2 1 1 2 1 1 1 1 1 c d . - . . b 1 1 1 1 2 1 1 f f 1 c d . - . . b 1 1 2 2 1 1 f 1 1 1 c d . - . . b 1 1 2 1 1 1 1 f 1 1 c d . - . . b 1 1 1 1 1 1 1 1 f 1 c d . - . . b 1 1 2 1 1 1 f f 1 1 c d . - . . b 1 1 1 1 1 1 1 1 1 1 c d . - . . . c c c c c c c c c c d . . - . . . . . . . . . . . . . . . . - . . . . . . . . . . . . . . . . - ` - export const tile_pin_0 = bmp` - . . 4 5 4 d . . . . 4 5 4 d . . - . . 4 5 4 d . . . . 4 5 4 d . . - . . 4 5 4 d . . . . 4 5 4 d . . - . . 4 5 5 4 4 4 4 4 5 5 4 d . . - . . 4 5 5 5 5 5 5 5 5 5 4 d . . - . . 4 5 5 5 5 5 5 5 5 5 4 d . . - . . 4 5 5 5 5 f 5 5 5 5 4 d . . - . . 4 5 5 5 f 5 f 5 5 5 4 d . . - . . 4 5 5 5 f 5 f 5 5 5 4 d . . - . . 4 5 5 5 f 5 f 5 5 5 4 d . . - . . 4 5 5 5 5 f 5 5 5 5 4 d . . - . . 4 5 5 5 5 5 5 5 5 5 4 d . . - . . 4 5 5 4 4 4 4 4 5 5 4 d . . - . . . 4 4 d . . . . 4 4 d . . . - . . . . . . . . . . . . . . . . - . . . . . . . . . . . . . . . . - ` - export const tile_pin_1 = bmp` - . . 4 5 4 d . . . . 4 5 4 d . . - . . 4 5 4 d . . . . 4 5 4 d . . - . . 4 5 4 d . . . . 4 5 4 d . . - . . 4 5 5 4 4 4 4 4 5 5 4 d . . - . . 4 5 5 5 5 5 5 5 5 5 4 d . . - . . 4 5 5 5 5 5 5 5 5 5 4 d . . - . . 4 5 5 5 5 f 5 5 5 5 4 d . . - . . 4 5 5 5 f f 5 5 5 5 4 d . . - . . 4 5 5 5 5 f 5 5 5 5 4 d . . - . . 4 5 5 5 5 f 5 5 5 5 4 d . . - . . 4 5 5 5 f f f 5 5 5 4 d . . - . . 4 5 5 5 5 5 5 5 5 5 4 d . . - . . 4 5 5 4 4 4 4 4 5 5 4 d . . - . . . 4 4 d . . . . 4 4 d . . . - . . . . . . . . . . . . . . . . - . . . . . . . . . . . . . . . . - ` - export const tile_pin_2 = bmp` - . . 4 5 4 d . . . . 4 5 4 d . . - . . 4 5 4 d . . . . 4 5 4 d . . - . . 4 5 4 d . . . . 4 5 4 d . . - . . 4 5 5 4 4 4 4 4 5 5 4 d . . - . . 4 5 5 5 5 5 5 5 5 5 4 d . . - . . 4 5 5 5 5 5 5 5 5 5 4 d . . - . . 4 5 5 5 f f 5 5 5 5 4 d . . - . . 4 5 5 5 5 5 f 5 5 5 4 d . . - . . 4 5 5 5 5 f 5 5 5 5 4 d . . - . . 4 5 5 5 f 5 5 5 5 5 4 d . . - . . 4 5 5 5 f f f 5 5 5 4 d . . - . . 4 5 5 5 5 5 5 5 5 5 4 d . . - . . 4 5 5 4 4 4 4 4 5 5 4 d . . - . . . 4 4 d . . . . 4 4 d . . . - . . . . . . . . . . . . . . . . - . . . . . . . . . . . . . . . . - ` - - export const radio_value = bmp` - . . . . . . . . . . . . . . . . - . . . . . 8 . . . 8 . . . . . . - . . . 8 . . 8 8 8 . . 8 . . . . - . 8 . . 8 . . . . . 8 . . 8 . . - . . 8 . . 8 8 8 8 8 . . 8 . . . - . . . 8 . . . . . . . 8 . . . . - . . . . 8 8 8 8 8 8 8 . . . . . - . . . . . . . . . . . . . . . . - . . . . . . . . . . . . . . . . - . . . . . . 4 4 4 . . . . . . . - . . . . . 4 5 1 5 4 . . . . . . - . . . . . 4 1 1 1 4 . . . . . . - . . . . . 4 5 1 5 4 . . . . . . - . . . . . . 4 4 4 . . . . . . . - . . . . . . . . . . . . . . . . - . . . . . . . . . . . . . . . . -` - export const radio_receive = bmp` - . . . . . . . . . . . . . . . . - . . . . . 8 . . . 8 . . . . . . - . . . 8 . . 8 8 8 . . 8 . . . . - . 8 . . 8 . . . . . 8 . . 8 . . - . . 8 . . 8 8 8 8 8 . . 8 . . . - . . . 8 . . . . . . . 8 . . . . - . . . . 8 8 8 8 8 8 8 . . . . . - . . . . . . . . . . . . . . . . - . . . . . . 4 5 4 . . . . . . . - . . . . . . 4 5 4 . . . . . . . - . . . . . . 4 5 4 . . . . . . . - . . . . 4 5 5 5 5 5 4 . . . . . - . . . . . 4 5 5 5 4 . . . . . . - . . . . . . 4 5 4 . . . . . . . - . . . . . . . 4 . . . . . . . . - . . . . . . . . . . . . . . . . -` - export const radio_send = bmp` - . . . . . . . . . . . . . . . . - . . . . 8 8 8 8 8 8 8 . . . . . - . . . 8 . . . . . . . 8 . . . . - . . 8 . . 8 8 8 8 8 . . 8 . . . - . 8 . . 8 . . . . . 8 . . 8 . . - . . . 8 . . 8 8 8 . . 8 . . . . - . . . . . 8 . . . 8 . . . . . . - . . . . . . . 4 . . . . . . . . - . . . . . . 4 5 4 . . . . . . . - . . . . . 4 5 5 5 4 . . . . . . - . . . . 4 5 5 5 5 5 4 . . . . . - . . . . . . 4 5 4 . . . . . . . - . . . . . . 4 5 4 . . . . . . . - . . . . . . 4 5 4 . . . . . . . - . . . . . . 4 5 4 . . . . . . . - . . . . . . . . . . . . . . . . -` - export const radio_set_group_small = bmp` - . . . . . . . . . . . . . . . . - . . . . . 8 . . . 8 . . . . . . - . . . 8 . . 8 8 8 . . 8 . . . . - . 8 . . 8 . . . . . 8 . . 8 . . - . . 8 . . 8 8 8 8 8 . . 8 . . . - . . . 8 . . . . . . . 8 . . . . - . . . . 8 8 8 8 8 8 8 . . . . . - . . . . . . . . . . . . . . . . - . . . 6 6 6 . . . . 6 6 6 . . . - . . 6 9 6 9 6 . . 6 9 6 9 6 . . - . . . 6 6 6 . . . . 6 6 6 . . . - . . . . . . . . . . . . . . . . - . . . 6 6 6 . . . . 6 6 6 . . . - . . 6 9 6 9 6 . . 6 9 6 9 6 . . - . . . 6 6 6 . . . . 6 6 6 . . . - . . . . . . . . . . . . . . . . -` - //TODO: I think this is actually the Jacdac logo? // user-interface-base/coreAssets.ts has the real microbitLogo // Use "microbitLogo" and at the end of this function it will check user-interface-base and fetch it. - export const microbit_logo = bmp` - . . . . . . . . . . . . . . . . - . . . . . . . . . . . . . . . . - . . . . . . . . . . . . . . . . - . . . . . . . . . . . . . . . . - . . . . 4 4 4 4 4 4 4 4 d . . . - . . . 4 d 5 5 5 5 5 5 5 4 d . . - . . 4 d . . . . . . . . 5 4 d . - . . 4 d 4 4 d . . . 4 4 d 4 d . - . . 4 d 4 4 d . . . 4 4 d 4 d . - . . 4 d . 5 5 . . . . 5 5 4 d . - . . . 4 d . . . . . . . 4 d . . - . . . . 4 4 4 4 4 4 4 4 d . . . - . . . . . 5 5 5 5 5 5 5 . . . . - . . . . . . . . . . . . . . . . - . . . . . . . . . . . . . . . . - . . . . . . . . . . . . . . . . -` - - export const finger_release = bmp` - . . . . . . . . . . . . . . . . - . . . . . . . f . . . . . . . . - . . . . . . f f f . . . . . . . - . . . . . f . f . f . . . . . . - . . . . . . . f . . . . . . . . - . . . . . . . f . . . . . . . . - . . . . . . . f . . . . . . . . - . . . . . . . . . . . . . . . . - . . . . . 4 4 4 4 4 . . . . . . - . . . . 4 4 4 4 4 4 4 d . . . . - . . . e 4 4 4 4 4 4 4 e d . . . - . . . e 2 4 4 4 4 4 2 e d . . . - . . . e e 2 2 2 2 2 e e d . . . - . . . . e e e e e e e d . . . . - . . . . . . . . . . . . . . . . - . . . . . . . . . . . . . . . . - ` - export const tile_color_black = bmp` - . . . . . . . . . . . . . . . . - . . . . . 1 1 1 1 1 . . . . . . - . . . 1 1 f f f f f b b . . . . - . . 1 f f f f f f f f f b . . . - . . 1 f f f f f f f f f b . . . - . 1 f f f f f f f f f f f b . . - . 1 f f f f f f f f f f f b d . - . 1 f f f f f f f f f f f b d . - . 1 f f f f f f f f f f f b d . - . 1 f f f f f f f f f f f b d . - . . b f f f f f f f f f b d d . - . . b f f f f f f f f f b d . . - . . . b b f f f f f b b d . . . - . . . . . b b b b b d d . . . . - . . . . . . . . . . . . . . . . - . . . . . . . . . . . . . . . . - ` - export const tile_color_red = bmp` - . . . . . . . . . . . . . . . . - . . . . . 1 1 1 1 1 . . . . . . - . . . 1 1 2 2 2 2 2 b b . . . . - . . 1 2 2 2 2 2 2 2 2 2 b . . . - . . 1 2 2 2 2 2 2 2 2 2 b . . . - . 1 2 2 2 2 2 2 2 2 2 2 2 b . . - . 1 2 2 2 2 2 2 2 2 2 2 2 b d . - . 1 2 2 2 2 2 2 2 2 2 2 2 b d . - . 1 2 2 2 2 2 2 2 2 2 2 2 b d . - . 1 2 2 2 2 2 2 2 2 2 2 2 b d . - . . b 2 2 2 2 2 2 2 2 2 b d d . - . . b 2 2 2 2 2 2 2 2 2 b d . . - . . . b b 2 2 2 2 2 b b d . . . - . . . . . b b b b b d d . . . . - . . . . . . . . . . . . . . . . - . . . . . . . . . . . . . . . . - ` - export const tile_color_blue = bmp` - . . . . . . . . . . . . . . . . - . . . . . 1 1 1 1 1 . . . . . . - . . . 1 1 8 8 8 8 8 b b . . . . - . . 1 8 8 8 8 8 8 8 8 8 b . . . - . . 1 8 8 8 8 8 8 8 8 8 b . . . - . 1 8 8 8 8 8 8 8 8 8 8 8 b . . - . 1 8 8 8 8 8 8 8 8 8 8 8 b d . - . 1 8 8 8 8 8 8 8 8 8 8 8 b d . - . 1 8 8 8 8 8 8 8 8 8 8 8 b d . - . 1 8 8 8 8 8 8 8 8 8 8 8 b d . - . . b 8 8 8 8 8 8 8 8 8 b d d . - . . b 8 8 8 8 8 8 8 8 8 b d . . - . . . b b 8 8 8 8 8 b b d . . . - . . . . . b b b b b d d . . . . - . . . . . . . . . . . . . . . . - . . . . . . . . . . . . . . . . - ` - export const tile_sparkle = bmp` - c c c c c c c c c c c c c c c c - c c d c c c c c c c c c c c c c - c d 1 d c c c c c c c c c d c c - c c d c c c c c c c c c c c c c - c c c c c c c d c c d c c c c c - c c c c c c c c c d 1 d c c c c - c c c c c c c c c c d c c c c c - c d c c c c c c c c c c c c c c - c c c c c c c c c c c c c c c c - c c c c c c d c c 1 c c c c c c - c c c c c d 1 d c c c c c c c c - c c c c c c d c c c c c c c c c - c c c c c c c c c c c c c d c c - c c c c c c c c c c c c d 1 d c - c c c d c c c c c c c c c d c c - c c c c c c c c c c c c c c c c - ` - - export const tile_rainbow = bmp` - . . . . . . . . . . . . . . . . - . . 2 2 2 2 2 2 2 2 2 2 2 2 . . - . 2 2 2 2 2 2 2 2 2 2 2 2 2 2 . - 2 2 2 4 4 4 4 4 4 4 4 4 4 2 2 2 - 2 2 4 4 4 4 4 4 4 4 4 4 4 4 2 2 - 2 4 4 5 5 5 5 5 5 5 5 5 5 4 4 2 - 4 4 5 5 5 5 5 5 5 5 5 5 5 5 4 4 - 4 5 5 5 7 7 7 7 7 7 7 7 5 5 5 4 - 5 5 7 7 7 7 7 7 7 7 7 7 7 7 5 5 - 5 7 7 7 7 8 8 8 8 8 8 7 7 7 7 5 - 7 7 7 7 8 8 8 8 8 8 8 8 7 7 7 5 - 7 7 7 8 8 8 c c c c 8 8 8 7 7 7 - 7 7 8 8 8 c c c c c c 8 8 8 7 7 - 7 7 8 8 c c a a a a c c 8 8 7 7 - 7 7 8 8 c c a . . a c c 8 8 7 7 - . . . . . . . . . . . . . . . . - ` - - export const tile_color_green = bmp` - . . . . . . . . . . . . . . . . - . . . . . 1 1 1 1 1 . . . . . . - . . . 1 1 7 7 7 7 7 b b . . . . - . . 1 7 7 7 7 7 7 7 7 7 b . . . - . . 1 7 7 7 7 7 7 7 7 7 b . . . - . 1 7 7 7 7 7 7 7 7 7 7 7 b . . - . 1 7 7 7 7 7 7 7 7 7 7 7 b d . - . 1 7 7 7 7 7 7 7 7 7 7 7 b d . - . 1 7 7 7 7 7 7 7 7 7 7 7 b d . - . 1 7 7 7 7 7 7 7 7 7 7 7 b d . - . . b 7 7 7 7 7 7 7 7 7 b d d . - . . b 7 7 7 7 7 7 7 7 7 b d . . - . . . b b 7 7 7 7 7 b b d . . . - . . . . . b b b b b d d . . . . - . . . . . . . . . . . . . . . . - . . . . . . . . . . . . . . . . - ` - export const tile_color_magenta = bmp` - . . . . . . . . . . . . . . . . - . . . . . 1 1 1 1 1 . . . . . . - . . . 1 1 a a a a a b b . . . . - . . 1 a a a a a a a a a b . . . - . . 1 a a a a a a a a a b . . . - . 1 a a a a a a a a a a a b . . - . 1 a a a a a a a a a a a b d . - . 1 a a a a a a a a a a a b d . - . 1 a a a a a a a a a a a b d . - . 1 a a a a a a a a a a a b d . - . . b a a a a a a a a a b d d . - . . b a a a a a a a a a b d . . - . . . b b a a a a a b b d . . . - . . . . . b b b b b d d . . . . - . . . . . . . . . . . . . . . . - . . . . . . . . . . . . . . . . - ` - export const tile_color_yellow = bmp` - . . . . . . . . . . . . . . . . - . . . . . 1 1 1 1 1 . . . . . . - . . . 1 1 5 5 5 5 5 b b . . . . - . . 1 5 5 5 5 5 5 5 5 5 b . . . - . . 1 5 5 5 5 5 5 5 5 5 b . . . - . 1 5 5 5 5 5 5 5 5 5 5 5 b . . - . 1 5 5 5 5 5 5 5 5 5 5 5 b d . - . 1 5 5 5 5 5 5 5 5 5 5 5 b d . - . 1 5 5 5 5 5 5 5 5 5 5 5 b d . - . 1 5 5 5 5 5 5 5 5 5 5 5 b d . - . . b 5 5 5 5 5 5 5 5 5 b d d . - . . b 5 5 5 5 5 5 5 5 5 b d . . - . . . b b 5 5 5 5 5 b b d . . . - . . . . . b b b b b d d . . . . - . . . . . . . . . . . . . . . . - . . . . . . . . . . . . . . . . - ` - - export const rgbLed = bmp` - . . . . f f f f f f f . . . . . - . . f f f 4 4 f 9 9 f f f . . . - . f 5 5 f 4 4 f 9 9 f b b f . . - . f 5 5 f f f f f f f b b f d . - f f f f f . . . . . f f f f f d - f 4 4 f . . . . . . . f 7 7 f d - f 4 4 f . . . . . . . f 7 7 f d - f f f f . . . . . . . f f f f d - f 2 2 f . . . . . . . f e e f d - f 2 2 f . . . . . . . f e e f d - f f f f . . . . . . . f f f f d - b f 6 6 f f f f f f f c c f b d - . f 6 6 f 8 8 f a a f c c 5 5 5 - . b f f f 8 8 f a a f f f 5 5 5 - . . b b f f f f f f f b b 5 5 4 - . . . . d b b b b b b d d 4 4 . -` - - export const temp_warmer = bmp` -. . . . . . . . . . . . . . . . -. . . . . . . . . . . . . . . . -. . . . . . . f . . . . . . . . -. . . . . . f 2 f . . . . . . . -. . . . . f 2 2 2 f . . . . . . -. . . . f 2 2 2 2 2 f . . . . . -. . . f 2 2 2 2 2 2 2 f . . . . -. . . f f f 2 2 2 f f f . . . . -. . . . . f 2 2 2 f . . . . . . -. . . . . f 2 2 2 f . . . . . . -. . . . . f 2 2 2 f . . . . . . -. . . . . f 2 2 2 f . . . . . . -. . . . . f 2 2 2 f . . . . . . -. . . . . f f f f f . . . . . . -. . . . . . . . . . . . . . . . -. . . . . . . . . . . . . . . . -` - - export const temp_colder = bmp` - . . . . . . . . . . . . . . . . - . . . . . . . . . . . . . . . . - . . . . . f f f f f . . . . . . - . . . . . f 9 9 9 f . . . . . . - . . . . . f 9 9 9 f . . . . . . - . . . . . f 9 9 9 f . . . . . . - . . . . . f 9 9 9 f . . . . . . - . . . . . f 9 9 9 f . . . . . . - . . . f f f 9 9 9 f f f . . . . - . . . f 9 9 9 9 9 9 9 f . . . . - . . . . f 9 9 9 9 9 f . . . . . - . . . . . f 9 9 9 f . . . . . . - . . . . . . f 9 f . . . . . . . - . . . . . . . f . . . . . . . . - . . . . . . . . . . . . . . . . - . . . . . . . . . . . . . . . . -` - - export const light_sensor = bmp` -. . . . . . . . . . . . . . . . -. . 8 8 8 8 5 5 5 8 8 8 8 . . . -. . 8 8 8 5 4 4 4 5 8 8 8 . . . -. . 8 8 8 5 4 4 4 5 8 8 8 . . . -. . 8 8 8 5 4 4 4 5 8 8 8 . . . -. . 8 8 8 8 5 5 5 8 8 8 8 . . . -. . 8 8 5 8 8 8 8 8 5 8 8 . . . -. . 8 5 8 8 8 5 8 8 8 5 8 . . . -. . 8 8 8 5 8 8 8 5 8 8 8 . . . -. . 8 8 5 8 8 5 8 8 5 8 8 . . . -. . 8 5 8 8 8 8 8 8 8 5 8 . . . -. . 8 8 8 8 8 5 8 8 8 8 8 . . . -. . 8 8 8 8 8 8 8 8 8 8 8 . . . -. . 8 8 8 2 2 2 2 2 8 8 8 . . . -. . 8 f f f f f f f f f 8 . . . -. . . . . . . . . . . . . . . . -` - - export const speakerSoft = bmp` -. . . . . . . . . . . . . . . . -. . . . . . . . . . . . . . . . -. . . . . . . . . . . . . . . . -. . . . . c . . . . . . . . . . -. . . . c b . . . . . . . . . . -. . . c b c . . . . . . . . . . -. c c b c c . 8 . . . . . . . . -. b b c c c . . 8 . . . . . . . -. c c c c c . . 8 . . . . . . . -. c c c c c . 8 . . . . . . . . -. . . c c c . . . . . . . . . . -. . . . c c . . . . . . . . . . -. . . . . c . . . . . . . . . . -. . . . . . . . . . . . . . . . -. . . . . . . . . . . . . . . . -. . . . . . . . . . . . . . . . -` - - export const speakerFun = bmp` - . . . . . . . . . . . . . . . . - . . . . . . . . 3 . . . 5 . . . - . . . . . . . 3 . . . . . . 2 . - . . . . . c . . . . . 2 . 2 . . - . . . . c b . . 2 . 2 . 2 . . . - . . . c b c . 2 . 2 . . . . 5 . - . c c b c c . . . . . . . . . . - . b b c c c . 4 . 4 . 4 . 4 . . - . c c c c c . . 4 . 4 . 4 . 4 . - . c c c c c . . . . . . . . . . - . . . c c c . 6 . 6 . 5 . . . . - . . . . c c . . 6 . 6 . 6 . . . - . . . . . c . . . . . 6 . 6 . . - . . . . . . . 9 . . . . . . . . - . . . . . . . . . . . . . . . . - . . . . . . . . . . . . . . . . -` - - export const music = bmp` - . . . . . . . . . . . . . . . . - . . . . . . . . . . . . . . . . - . . . . . . . . . . . f c . . . - . . . . . . . . . c c c c b . . - . . . . . . . c c c b b c b . . - . . . . . f c c b b b . c b . . - . . . . . c b b b . . . c b . . - . . . . . c b . . . . . c b . . - . . . . . c b . . . . . c b . . - . . . . . c b . . . f f c b . . - . . . f f c b . . f c c c b . . - . . f c c c b . . f c c b b . . - . . f c c b b . . . b b b . . . - . . . b b b . . . . . . . . . . - . . . . . . . . . . . . . . . . - . . . . . . . . . . . . . . . . -` - export const note_on = bmp` -1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 -1 1 1 1 1 1 1 c c c c 1 1 1 1 1 -1 1 1 1 1 1 c f f f f c 1 1 1 1 -1 1 1 1 1 c f f f f f f c 1 1 1 -1 1 1 1 c f f f f f f f f c 1 1 -1 1 1 1 c f f f f f f f f c 1 1 -1 1 1 c f f f f f f f f f c 1 1 -1 1 1 c f f f f f f f f f c 1 1 -1 1 1 c f f f f f f f f f c 1 1 -1 1 1 c f f f f f f f f f c 1 1 -1 1 1 c f f f f f f f f c 1 1 1 -1 1 1 c f f f f f f f f c 1 1 1 -1 1 1 1 c f f f f f f c 1 1 1 1 -1 1 1 1 1 c f f f f c 1 1 1 1 1 -1 1 1 1 1 1 c c c c 1 1 1 1 1 1 -1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 -` - - export const note_off = bmp` -1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 -1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 -1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 -1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 -1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 -1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 -1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 -1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 -1 1 1 1 1 1 1 1 f 1 1 1 1 1 1 1 -1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 -1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 -1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 -1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 -1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 -1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 -1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 -` - - export const soundGiggle = bmp` - . . . . . . . . . . . . . . . . - . . . . . . . . . . . . . . . . - . . . . . 4 4 4 4 4 . . . . . . - . . . . 4 5 5 5 5 5 4 . . . . . - . . . 4 5 5 5 5 5 5 5 4 . . . . - . . 4 5 5 f 5 5 5 f 5 5 4 . . . - . . 4 5 f 5 f 5 f 5 f 5 4 d . . - . . 4 3 3 5 5 5 5 5 3 3 4 d . . - . . 4 5 5 f f f f f 5 5 4 d . . - . . 4 5 5 f f 2 2 2 5 5 4 d . . - . . . 4 5 5 f 2 2 5 5 4 d . . . - . . . . 4 5 5 5 5 5 4 d . . . . - . . . . . 4 4 4 4 4 d . . . . . - . . . . . . . . . . . . . . . . - . . . . . . . . . . . . . . . . - . . . . . . . . . . . . . . . . - ` - export const soundHappy = bmp` - . . . . . . . . . . . . . . . . - . . . . . . . . . . . . . . . . - . . . . . 4 4 4 4 4 . . . . . . - . . . . 4 5 5 5 5 5 4 . . . . . - . . . 4 5 5 5 5 5 5 5 4 . . . . - . . 4 5 5 f 5 5 5 f 5 5 4 . . . - . . 4 5 5 f 5 5 5 f 5 5 4 d . . - . . 4 5 5 5 5 5 5 5 5 5 4 d . . - . . 4 5 5 f 5 5 5 f 5 5 4 d . . - . . 4 5 5 5 f f f 5 5 5 4 d . . - . . . 4 5 5 5 5 5 5 5 4 d . . . - . . . . 4 5 5 5 5 5 4 d . . . . - . . . . . 4 4 4 4 4 d . . . . . - . . . . . . . . . . . . . . . . - . . . . . . . . . . . . . . . . - . . . . . . . . . . . . . . . . - ` - export const soundHello = bmp` - . . . . . . . . . . . . . . . . - . . . . . . . . . . . . . . . . - . . . . . . . . . . . 8 8 8 . . - . . . . . . . . . . 8 . . . 8 . - . . . . 4 4 4 4 . . . . 4 . . . - . . . 4 5 5 5 5 4 . . 4 5 4 . . - . . 4 5 f 5 5 f 5 4 . 8 8 8 d . - . . 4 5 5 5 5 5 5 4 d 8 9 8 d . - . . 4 5 f 5 5 f 5 4 8 9 9 8 d . - . . 4 5 5 f f 5 5 4 8 9 8 d . . - . . . 4 5 5 5 5 4 8 9 9 8 d . . - . . . . 4 4 4 4 9 9 9 8 d . . . - . . . 8 9 9 9 9 9 9 8 d . . . . - . . 8 9 9 9 9 9 9 9 8 d . . . . - . . . . . . . . . . . . . . . . - . . . . . . . . . . . . . . . . - ` - export const soundMysterious = bmp` - . . . . . . . . . . . . . . . . - . . . . . . . . . . . . . . . . - . . . . 6 6 6 6 6 6 . . . . . . - . . . 6 7 7 7 7 7 7 6 . . . . . - . . f f 1 7 7 7 7 f 1 f . . . . - . . f f f f 7 7 f f f f d . . . - . . 6 f f f 7 7 f f f 6 d . . . - . . 6 7 7 7 7 7 7 7 7 6 d . . . - . . 6 7 7 f 7 7 f 7 7 6 d . . . - . . . 6 7 7 f f 7 7 6 d . . . . - . . . . 6 7 7 7 7 6 d . . . . . - . . . . . 6 7 7 6 d . . . . . . - . . . . . . 6 6 d . . . . . . . - . . . . . . . . . . . . . . . . - . . . . . . . . . . . . . . . . - . . . . . . . . . . . . . . . . - ` - export const soundSad = bmp` - . . . . . . . . . . . . . . . . - . . . . . . . . . . . . . . . . - . . . . . 4 4 4 4 4 . . . . . . - . . . . 4 5 5 5 5 5 4 . . . . . - . . . 4 5 5 5 5 5 5 5 4 . . . . - . . 4 5 5 f 5 5 5 f 5 5 4 . . . - . . 4 5 5 f 5 5 5 f 5 5 4 d . . - . . 4 5 5 5 5 5 5 5 5 5 4 d . . - . . 4 5 5 5 f f f 5 5 5 4 d . . - . . 4 5 5 f 5 5 5 f 5 5 4 d . . - . . . 4 5 5 5 5 5 5 5 4 d . . . - . . . . 4 5 5 5 5 5 4 d . . . . - . . . . . 4 4 4 4 4 d . . . . . - . . . . . . . . . . . . . . . . - . . . . . . . . . . . . . . . . - . . . . . . . . . . . . . . . . - ` - export const soundSlide = bmp` - . . . . . . . . . . . . . . . . - . . . . . . . . . . . . . . . . - . . . . . . . . . . . . . . . . - . . . . . . 2 2 2 e e e . . . . - . . . . . 2 2 2 e e d e d . . . - . . . . . 2 2 e d e e e d . . . - . . . . . 2 2 e d e d e d . . . - . . . . . 2 2 e d e e e d . . . - . . . . . 2 2 e d e d e d . . . - . . . . . 2 2 e d e e e d . . . - . . . . 2 2 2 e d e d e d . . . - . . . 2 2 2 e d . e e e d . . . - . . 2 2 2 e d . . e d e d . . . - . . . . . . . . . . . . . . . . - . . . . . . . . . . . . . . . . - . . . . . . . . . . . . . . . . - ` - export const soundSoaring = bmp` - . . . . . . . . . . . . . . . . - . . . . . . . . . . . . . . . . - . . . . . 9 9 9 9 9 . . . . . . - . . . . 9 1 9 9 9 9 9 . . . . . - . . . 9 1 9 9 7 7 7 9 9 . . . . - . . . 9 1 9 7 f 7 f 7 9 . . . . - . . 6 6 6 6 6 6 6 6 6 6 6 d . . - . 6 9 5 9 5 9 5 9 5 9 5 9 6 d . - . 8 8 8 8 8 8 8 8 8 8 8 8 8 d . - . . . . . . 8 8 8 d . . . . . . - . . . . 9 . . . . . 9 . . . . . - . . . . . 9 9 9 9 9 . . . . . . - . . . 9 . . . . . . . 9 . . . . - . . . . 9 9 9 9 9 9 9 . . . . . - . . . . . . . . . . . . . . . . - . . . . . . . . . . . . . . . . - ` - export const soundSpring = bmp` - . . . . . . . . . . . . . . . . - . . . . . . . . . . . . . . . . - . . . 2 d . . . . . . . . . . . - . . 2 d . . 4 4 d . . . . . . . - . 2 d . . 4 d d 5 d . . . . . . - . 2 d . 4 d . . 5 d . . . . . . - . d 4 4 d . . 5 d . . . . . . . - . . d d . . 5 d . . 7 7 d . . . - . . . . . 5 d . . 7 d d 9 d . . - . . . . . 5 d . 7 d . . 9 d . . - . . . . . d 7 7 d . . 9 d . . . - . . . . . . d d . . 9 d . . . . - . . . . . . . . . . d . . . . . - . . . . . . . . . . . . . . . . - . . . . . . . . . . . . . . . . - . . . . . . . . . . . . . . . . - ` - export const soundTwinkle = bmp` - . . . . . . . . . . . . . . . . - . . . . . . . . . . . . . . . . - . . . 3 . . . 3 . . . 3 . . . . - . . 3 5 3 . . 3 . . . . . . . . - . . . 3 . . 3 5 3 . . . . . . . - . . . . . . 3 5 3 . . . . 3 . . - . . . . 3 3 5 5 5 3 3 . . . . . - . . 3 3 5 5 5 5 5 5 5 3 3 . . . - . . . . 3 3 5 5 5 3 3 . . . . . - . . . . . . 3 5 3 . . . . . . . - . . . . . . 3 5 3 . . . 3 . . . - . . . 3 . . . 3 . . . 3 5 3 . . - . . . . . . . 3 . . . . 3 . . . - . . . . . . . . . . . . . . . . - . . . . . . . . . . . . . . . . - . . . . . . . . . . . . . . . . - ` - export const soundYawn = bmp` - . . . . . . . . . . . . . . . . - . . . . . . . . . . . . . . . . - . . . . . 4 4 4 4 4 . . . . . . - . . . . 4 5 5 5 5 5 4 . . . . . - . . . 4 5 5 5 5 5 5 5 4 . . . . - . . 4 5 f f 5 5 5 f f 5 4 . . . - . . 4 5 5 5 5 5 5 5 5 5 4 d . . - . . 4 5 5 5 f f f 5 5 5 4 d . . - . . 4 5 5 5 f f f 5 5 5 4 d . . - . . 4 5 5 5 f 2 2 5 5 5 4 d . . - . . . 4 5 5 5 5 5 5 5 4 d . . . - . . . . 4 5 5 5 5 5 4 d . . . . - . . . . . 4 4 4 4 4 d . . . . . - . . . . . . . . . . . . . . . . - . . . . . . . . . . . . . . . . - . . . . . . . . . . . . . . . . - ` - - export const moveShake = bmp` - . . . . . . . . . . . . . . . . - . . . . . . . . . . . . . . . . - . . . . . . . . . . 8 . . 8 . . - . . . 9 9 9 9 9 9 . . 8 . . 8 . - . . . 9 6 6 6 6 6 . . . 8 . 8 . - . . . 9 6 f f f f f f . 8 . 8 . - . . . 9 6 f 5 5 5 5 f . . . . . - . . . 9 6 f 5 5 5 5 f 6 9 . . . - . . . . . f 5 5 5 5 f 6 9 . . . - . 8 . 8 . f f f f f f 6 9 . . . - . 8 . 8 . . . 6 6 6 6 6 9 . . . - . 8 . . 8 . . 9 9 9 9 9 9 . . . - . . 8 . . 8 . . . . . . . . . . - . . . . . . . . . . . . . . . . - . . . . . . . . . . . . . . . . - . . . . . . . . . . . . . . . . - ` - - export const moveTiltDown = bmp` - . . . . . . . . . . . . . . . . - . . . . . . . . . . . . . . . . - . . . . . . . 8 8 8 8 . . . . . - . . . . . . 8 . . . . . . . . . - . . . . . 8 . . . . . . . . . . - . . . 8 8 8 8 8 . . . . . . . . - . . . . 8 8 8 9 9 9 9 9 9 9 . . - . . . . 9 8 9 9 9 9 9 9 9 9 . . - . . . . 9 9 9 9 9 9 9 9 9 9 . . - . f f f f f f f f f 9 9 9 9 . . - . . f 5 5 5 5 5 5 5 f 9 9 9 . . - . . . f 5 5 5 5 5 5 5 f 9 9 . . - . . . . f 5 5 5 5 5 5 5 f 9 . . - . . . . . f f f f f f f f f . . - . . . . . . . . . . . . . . . . - . . . . . . . . . . . . . . . . -` - export const moveTiltUp = bmp` -. . . . . . . . . . . . . . . . - . . . . . . . . . . . . . . . . - . . . . . . 8 8 8 8 . . . . . . - . . . . . . . . . . 8 . . . . . - . . . . . . . . . . . 8 . . . . - . . . . . . . . . 8 8 8 8 8 . . - . . 9 9 9 9 9 9 9 9 8 8 8 . . . - . . 9 9 9 9 9 9 9 9 9 8 . . . . - . . 9 9 9 9 9 9 9 9 9 . . . . . - . . 9 9 9 9 8 8 8 8 8 f f f . . - . . 9 9 9 8 6 6 6 6 6 5 f . . . - . . 9 9 8 6 6 6 6 6 6 f . . . . - . . 9 8 6 6 6 6 6 6 8 . . . . . - . . 8 8 8 8 8 8 8 8 9 . . . . . - . . . . . . . . . . . . . . . . - . . . . . . . . . . . . . . . . -` - export const moveTiltLeft = bmp` -. . . . . . . . . . . . . . . . - . . . . . . . . . . 8 . . . . . - . . . . . . f f . 8 8 . . . . . - . . . . . f 5 f 8 8 8 8 8 . . . - . . 9 9 8 5 5 f 9 8 8 . . 8 . . - . . 9 8 6 5 5 f 9 9 8 . . . 8 . - . . 9 8 6 5 5 f 9 9 9 . . . 8 . - . . 9 8 6 5 5 f 9 9 9 . . . 8 . - . . 9 8 6 5 5 f 9 9 9 . . 8 . . - . . 9 8 6 5 5 f 9 9 9 . . . . . - . . 9 8 6 5 5 f 9 9 9 . . . . . - . . 9 9 8 5 5 f 9 9 9 . . . . . - . . . . . f 5 f . . . . . . . . - . . . . . . f f . . . . . . . . - . . . . . . . . . . . . . . . . - . . . . . . . . . . . . . . . . -` - export const moveTiltRight = bmp` - . . . . . . . . . . . . . . . . - . . . . . 8 . . . . . . . . . . - . . . . . 8 8 . f f . . . . . . - . . . 8 8 8 8 8 f 5 f . . . . . - . . 8 . . 8 8 9 f 5 5 8 9 9 . . - . 8 . . . 8 9 9 f 5 5 6 8 9 . . - . 8 . . . 9 9 9 f 5 5 6 8 9 . . - . 8 . . . 9 9 9 f 5 5 6 8 9 . . - . . 8 . . 9 9 9 f 5 5 6 8 9 . . - . . . . . 9 9 9 f 5 5 6 8 9 . . - . . . . . 9 9 9 f 5 5 6 8 9 . . - . . . . . 9 9 9 f 5 5 8 9 9 . . - . . . . . . . . f 5 f . . . . . - . . . . . . . . f f . . . . . . - . . . . . . . . . . . . . . . . - . . . . . . . . . . . . . . . . -` - - export const moveFaceUp = bmp` -. . . . . . . . . . . . . . . . -. . . . . . . 8 . . . . . . . . -. . . . . . 8 8 8 . . . . . . . -. . . . . 8 8 8 8 8 . . . . . . -. . . . . . . 8 . . . . . . . . -. . . . . . . 8 . . . . . . . . -. . . . . . . 8 . . . . . . . . -. . . . . . . . . . . . . . . . -. . . . f f f f f f f . . . . . -. . . f 5 5 5 5 5 5 5 f . . . . -. . f 5 5 5 5 5 5 5 5 5 f . . . -. f 5 5 5 5 5 5 5 5 5 5 5 f . . -f f f f f f f f f f f f f f f . -. . . . . . . . . . . . . . . . -. . . . . . . . . . . . . . . . -. . . . . . . . . . . . . . . . -` - export const moveFaceDown = bmp` -. . . . . . . . . . . . . . . . -. . . . . . . . . . . . . . . . -. . . . . . . . . . . . . . . . -. f f f f f f f f f f f f f f f -. . f 5 5 5 5 5 5 5 5 5 5 5 f . -. . . f 5 5 5 5 5 5 5 5 5 f . . -. . . . f 5 5 5 5 5 5 5 f . . . -. . . . . f f f f f f f . . . . -. . . . . . . . . . . . . . . . -. . . . . . . . 8 . . . . . . . -. . . . . . . . 8 . . . . . . . -. . . . . . . . 8 . . . . . . . -. . . . . . 8 8 8 8 8 . . . . . -. . . . . . . 8 8 8 . . . . . . -. . . . . . . . 8 . . . . . . . -. . . . . . . . . . . . . . . . -` - - export const diceToss = bmp` - . . . . . . . . . . . . . . . . - . . . . . . . . . . . . . . . . - . . . . . b b b b b b b b . . . - . . . . b 1 1 1 1 1 1 1 b b . . - . . . b 1 1 1 b 1 1 1 b d b . . - . . b 1 1 1 1 1 1 1 b d d b . . - . . c b b b b b b b d d b b . . - . . c b b c c c b b d d d b . . - . . c b c b b b c b d d d b . . - . . c b b b b b c b d b d b d . - . . c b b b c c b b d d d b d . - . . c b b b b b b b d d b d . . - . . c b b b c b b b d b d . . . - . . . c c c c c c c b d . . . . - . . . . . . . . . . . . . . . . - . . . . . . . . . . . . . . . .` - - export const cupXread = bmp` -. . . . . . . . . . . . . . . . -. . . . . . . . . . . . . . . . -. . . . . . . . . . . . . . . . -. . . . c c c c c c c . . . . . -. . . c f f f f f f f c . . . . -. . c f f f 4 5 4 f f f c . . . -. . c c f 4 5 5 5 4 f c c . . . -. . c d c c c c c c c b c . . . -. . c d 1 d d d d d d b c . . . -. . c d 1 d f d f d d b c . . . -. . c d 1 d f d f d d b c . . . -. . c d 1 d d f d d d b c . . . -. . c d 1 d f d f d d b c . . . -. . . d 1 d f d f d d b . . . . -. . . . 1 d d d d d d . . . . . -. . . . . . . . . . . . . . . . -` - export const cupYread = bmp` -. . . . . . . . . . . . . . . . -. . . . . . . . . . . . . . . . -. . . . . . . . . . . . . . . . -. . . . c c c c c c c . . . . . -. . . c f f f f f f f c . . . . -. . c f f f 4 5 4 f f f c . . . -. . c c f 4 5 5 5 4 f c c . . . -. . c d c c c c c c c b c . . . -. . c d 1 d d d d d d b c . . . -. . c d 1 d f d f d d b c . . . -. . c d 1 d f d f d d b c . . . -. . c d 1 d d f d d d b c . . . -. . c d 1 d d f d d d b c . . . -. . . d 1 d d f d d d b . . . . -. . . . 1 d d d d d d . . . . . -. . . . . . . . . . . . . . . . -` - export const cupZread = bmp` -. . . . . . . . . . . . . . . . -. . . . . . . . . . . . . . . . -. . . . . . . . . . . . . . . . -. . . . c c c c c c c . . . . . -. . . c f f f f f f f c . . . . -. . c f f f 4 5 4 f f f c . . . -. . c c f 4 5 5 5 4 f c c . . . -. . c d c c c c c c c b c . . . -. . c d 1 d d d d d d b c . . . -. . c d 1 d f f f d d b c . . . -. . c d 1 d d d f d d b c . . . -. . c d 1 d d f d d d b c . . . -. . c d 1 d f d d d d b c . . . -. . . d 1 d f f f d d b . . . . -. . . . 1 d d d d d d . . . . . -. . . . . . . . . . . . . . . . -` - export const cupXassign = bmp` -. . . . . . . . . 4 4 4 4 4 4 4 -. . . . . . . . 4 5 5 5 5 5 5 5 -. . . . . . . 4 5 4 4 4 4 4 4 4 -. . . . . . . 4 5 4 . . . . . . -. . . . c c c 4 5 4 c . . . . . -. . . c f 4 5 5 5 5 5 4 . . . . -. . c f f f 4 5 5 5 4 f c . . . -. . c c f 4 5 4 5 4 f c c . . . -. . c d c c c c c c c b c . . . -. . c d 1 d d d d d d b c . . . -. . c d 1 d f d f d d b c . . . -. . c d 1 d f d f d d b c . . . -. . c d 1 d d f d d d b c . . . -. . c d 1 d f d f d d b c . . . -. . . d 1 d f d f d d b . . . . -. . . . 1 d d d d d d . . . . . -` - export const cupYassign = bmp` -. . . . . . . . . 4 4 4 4 4 4 4 -. . . . . . . . 4 5 5 5 5 5 5 5 -. . . . . . . 4 5 4 4 4 4 4 4 4 -. . . . . . . 4 5 4 . . . . . . -. . . . c c c 4 5 4 c . . . . . -. . . c f 4 5 5 5 5 5 4 . . . . -. . c f f f 4 5 5 5 4 f c . . . -. . c c f 4 5 4 5 4 f c c . . . -. . c d c c c c c c c b c . . . -. . c d 1 d d d d d d b c . . . -. . c d 1 d f d f d d b c . . . -. . c d 1 d f d f d d b c . . . -. . c d 1 d d f d d d b c . . . -. . c d 1 d d f d d d b c . . . -. . . d 1 d d f d d d b . . . . -. . . . 1 d d d d d d . . . . . -` - export const cupZassign = bmp` -. . . . . . . . . 4 4 4 4 4 4 4 -. . . . . . . . 4 5 5 5 5 5 5 5 -. . . . . . . 4 5 4 4 4 4 4 4 4 -. . . . . . . 4 5 4 . . . . . . -. . . . c c c 4 5 4 c . . . . . -. . . c f 4 5 5 5 5 5 4 . . . . -. . c f f f 4 5 5 5 4 f c . . . -. . c c f 4 5 4 5 4 f c c . . . -. . c d c c c c c c c b c . . . -. . c d 1 d d d d d d b c . . . -. . c d 1 d f f f d d b c . . . -. . c d 1 d d d f d d b c . . . -. . c d 1 d d f d d d b c . . . -. . c d 1 d f d d d d b c . . . -. . . d 1 d f f f d d b . . . . -. . . . 1 d d d d d d . . . . . -` - export const cupXwritten = bmp` -4 4 4 4 4 4 4 . . . . . . . . . -5 5 5 5 5 5 5 4 . . . . . . . . -4 4 4 4 4 4 4 5 4 . . . . . . . -. . . . . . 4 5 4 . . . . . . . -. . . . c c 4 5 4 c c . . . . . -. . . c 4 5 5 5 5 5 4 c . . . . -. . c f f 4 5 5 5 4 f f c . . . -. . c c f 4 4 5 4 4 f c c . . . -. . c d c c c c c c c b c . . . -. . c d 1 d d d d d d b c . . . -. . c d 1 d f d f d d b c . . . -. . c d 1 d f d f d d b c . . . -. . c d 1 d d f d d d b c . . . -. . c d 1 d f d f d d b c . . . -. . . d 1 d f d f d d b . . . . -. . . . 1 d d d d d d . . . . . -` - export const cupYwritten = bmp` -4 4 4 4 4 4 4 . . . . . . . . . -5 5 5 5 5 5 5 4 . . . . . . . . -4 4 4 4 4 4 4 5 4 . . . . . . . -. . . . . . 4 5 4 . . . . . . . -. . . . c c 4 5 4 c c . . . . . -. . . c 4 5 5 5 5 5 4 c . . . . -. . c f f 4 5 5 5 4 f f c . . . -. . c c f 4 4 5 4 4 f c c . . . -. . c d c c c c c c c b c . . . -. . c d 1 d d d d d d b c . . . -. . c d 1 d f d f d d b c . . . -. . c d 1 d f d f d d b c . . . -. . c d 1 d d f d d d b c . . . -. . c d 1 d d f d d d b c . . . -. . . d 1 d d f d d d b . . . . -. . . . 1 d d d d d d . . . . . -` - export const cupZwritten = bmp` -4 4 4 4 4 4 4 . . . . . . . . . -5 5 5 5 5 5 5 4 . . . . . . . . -4 4 4 4 4 4 4 5 4 . . . . . . . -. . . . . . 4 5 4 . . . . . . . -. . . . c c 4 5 4 c c . . . . . -. . . c 4 5 5 5 5 5 4 c . . . . -. . c f f 4 5 5 5 4 f f c . . . -. . c c f 4 4 5 4 4 f c c . . . -. . c d c c c c c c c b c . . . -. . c d 1 d d d d d d b c . . . -. . c d 1 d f f f d d b c . . . -. . c d 1 d d d f d d b c . . . -. . c d 1 d d f d d d b c . . . -. . c d 1 d f d d d d b c . . . -. . . d 1 d f f f d d b . . . . -. . . . 1 d d d d d d . . . . . -` - - export const largeNewProgramIcon = bmp` - .11111111..............11111111. - 1bbbbbbbb..............bbbbbbbb1 - 1..............................1 - 1..............................1 - 1..............................1 - 1..............................1 - 1..............................1 - 1..............................1 - 1..............................1 - b..............................b - ................................ - ...............11............... - ...............11............... - ...............11............... - ...............11............... - ...........1111111111........... - ...........1111111111........... - ...........bbbb11bbbb........... - ...............11............... - ...............11............... - ...............11............... - ...............bb............... - ................................ - 1..............................1 - 1..............................1 - 1..............................1 - 1..............................1 - 1..............................1 - 1..............................1 - 1..............................1 - 1..............................1 - b11111111..............11111111b - .bbbbbbbb..............bbbbbbbb. -` export const sampleFlashingHeart = bmp` .ffffffffffffffffffffffffffffff. @@ -2371,41 +321,6 @@ f f f f f f f f f f f f f f f . fffffffff2ffffffffffffffffffffff bffffffffffffffffffffffffffffffb .bbbbbbbbbbbbbbbbbbbbbbbbbbbbbb. -` - export const sampleSmileyButtons = bmp` - .111111111111111111111111111111. - 11111111111111111111111111111111 - 11111111111111111111111111111111 - 11111bbbbbbbbbbbbbbbb11111111111 - 1111b1111111111111111b1111111111 - 1111b1111111111111111b1111111111 - 1111b1111114444111111bd111111111 - 1111b1111445555441111bd111111111 - 1111b1114555555554111bd111111111 - 1111b111455f55f554111bd111111111 - 1111b114555f55f555411bd111111111 - 1111b1145555555555411bd111111111 - 1111b1145555555555411bd111111111 - 1111b114555f55f555411bd111111111 - 1111b1114555ff5554111bd111111111 - 1111b1114555555554111bd111111111 - 1111b1111445555441111bd111111111 - 1111b1111114444111111bd111111111 - 1111b111111111111111888811111111 - 1111b111111111111118666681111111 - 11111bbbbbb1111bbb86611668111111 - 111111dddddb11bdd866166166811111 - 11111111111b11bd.8661111668d1111 - 11111111111db11bd8661661668d1111 - 111111111111dbbbd8661661668d1111 - 1111111111111ddd18866666688d1111 - 11111111111111111188666688d11111 - 1111111111111111111888888d111111 - 111111111111111111118888d1111111 - 11111111111111111111111111111111 - 11111111111111111111111111111111 - b111111111111111111111111111111b - .bbbbbbbbbbbbbbbbbbbbbbbbbbbbbb. ` /* export const sampleDice = bmp` @@ -2833,44 +748,6 @@ bffffffffffffffffffffffffffffffb . . . . . . ` - export const servo_power = bmp` -. . . . . . . . . . . . . . . . -. . . 8 8 8 . . . . . 7 7 . . . -. . 8 8 8 8 8 . . . 7 7 7 7 . . -. . 8 8 8 8 8 . . . 7 7 7 7 . . -. . 8 8 8 8 8 . . . 7 7 7 7 . . -. . 8 8 8 8 8 . . . . . . . . . -. . 8 8 8 8 8 . . . f f f f . . -. . 8 b b b 8 . . . f f f f . . -. . 8 b c b b . . . f f f f . . -. . 8 b c c b . . . . f f . . . -. . 8 8 b b c b . . . . . . . . -. . 8 8 8 8 b c b . . . . . . . -. . 8 8 8 8 8 b c b . . . 5 5 5 -. . 8 8 8 8 8 . b c b . . 5 5 5 -. . . 8 8 8 . . . b . . . 5 5 4 -. . . . . . . . . . . . . 4 4 . -` - - export const servo_set_angle = bmp` - . . . . . . . . . . . . . . . . - . . . 8 8 8 . . . . 4 . . . . . - . . 8 8 8 8 8 . . . 2 . . . . . - . . 8 8 8 8 8 . . . 2 4 . . . . - . . 8 8 8 8 8 . . . . 2 . . . . - . . 8 8 8 8 8 . . . . 2 . . . . - . . 8 8 8 8 8 . . . . 2 . . . . - . . 8 b b b 8 . . 4 . 2 . 4 . . - . . 8 b c b b . . 2 4 2 4 2 . . - . . 8 b c c b . . . 2 2 2 . . . - . . 8 8 b b c b . . . 2 . . . . - . . 8 8 8 8 b c b . . . . . . . - . . 8 8 8 8 8 b c b . . . 5 5 5 - . . 8 8 8 8 8 . b c b . . 5 5 5 - . . . 8 8 8 . . . b c . . 5 5 4 - . . . . . . . . . . . b . 4 4 . - ` - export const blocks1 = bmp` . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . @@ -2994,137 +871,6 @@ bffffffffffffffffffffffffffffffb return numberToDecimalImage(i, false) } - export const kita_slider = bmp` - . . . . . . 6 6 6 6 6 . . . . . - . . . . . 6 6 6 f 6 6 6 . . . . - . . . . . 6 6 f f f 6 6 . . . . - . . . . . 6 6 f c f 6 6 . . . . - . . . . . 6 6 f c f 6 6 . . . . - . . . . . 6 6 f c f 6 6 . . . . - . . . . . 6 6 f c f 6 6 . . . . - . . . . . 6 9 9 9 9 9 6 . . . . - . . . . . 6 9 9 9 9 9 6 . . . . - . . . . . 6 6 f c f 6 6 . . . . - . . . . . 6 6 f c f 6 6 . . . . - . . . . . 6 6 f c f 6 6 . . . . - . . . . . 6 6 f c f 6 6 . 5 5 5 - . . . . . 6 6 f f f 6 6 . 5 5 5 - . . . . . 6 6 6 f 6 6 6 . 5 5 4 - . . . . . . 6 6 6 6 6 . . 4 4 . - ` - export const reflected_light_sensor = bmp` - . . . . . . . . . . . . . . . . - . . . . . . . . . . . . . . . . - . . f f f f f d d d d d . . . . - . . f f f f f d d d d d . . . . - . . f f f f f d d d d d . . . . - . . f 7 7 7 f d f f f d . . . . - . . f 7 7 7 f d f f f d . . . . - . . f 7 7 7 f d f f f d . . . . - . . f f f f f d d d d d . . . . - . . f f f f f d d d d d . . . . - . . f f f f f d d d d d . . . . - . . f f f f f d d d d d . . . . - . . f f f f f d d d d d . 5 5 5 - . . f f f f f d d d d d . 5 5 5 - . . . . . . . . . . . . . 5 5 4 - . . . . . . . . . . . . . 4 4 . -` - - export const kita_key_1 = bmp` - . . . . . . . . . . . . . . . . - . . . . . . . . . . . . . . . . - . . . 6 6 6 6 6 6 6 6 . . . . . - . . 6 6 6 6 6 6 6 6 6 6 . . . . - . . 6 c f f f f f f c 6 . . f . - . . 6 f f c c c c f f 6 . f f . - . . 6 f c f f f f c f 6 . . f . - . . 6 f c f f f f c f 6 . . f . - . . 6 f c f f f f c f 6 . f f f - . . 6 f c f f f f c f 6 . . . . - . . 6 f f c c c c f f 6 . . . . - . . 6 c f f f f f f c 6 . . . . - . . 6 6 6 6 6 6 6 6 6 6 . 5 5 5 - . . . 6 6 6 6 6 6 6 6 . . 5 5 5 - . . . . . . . . . . . . . 5 5 4 - . . . . . . . . . . . . . 4 4 . - ` - export const kita_key_2 = bmp` - . . . . . . . . . . . . . . . . - . . . . . . . . . . . . . . . . - . . . 6 6 6 6 6 6 6 6 . . . . . - . . 6 6 6 6 6 6 6 6 6 6 . . . . - . . 6 c f f f f f f c 6 . f f . - . . 6 f f c c c c f f 6 . . . f - . . 6 f c f f f f c f 6 . . f . - . . 6 f c f f f f c f 6 . f . . - . . 6 f c f f f f c f 6 . f f f - . . 6 f c f f f f c f 6 . . . . - . . 6 f f c c c c f f 6 . . . . - . . 6 c f f f f f f c 6 . . . . - . . 6 6 6 6 6 6 6 6 6 6 . 5 5 5 - . . . 6 6 6 6 6 6 6 6 . . 5 5 5 - . . . . . . . . . . . . . 5 5 4 - . . . . . . . . . . . . . 4 4 . - ` - - export const kita_rotary = bmp` - . . . . . . . . . . . . . . . . - . . . . . . . . . . . . . . . . - . . . . 6 6 6 6 6 6 6 . . . . . - . . . 6 6 6 6 6 6 6 6 6 . . . . - . . 6 6 6 d d d d d 6 6 6 . . . - . . 6 6 d f f 1 f f d 6 6 . . . - . . 6 d f f f 1 f f f d 6 . . . - . . 6 d f f f 1 f f f d 6 . . . - . . 6 d f f f f f f f d 6 . . . - . . 6 d f f f f f f f d 6 . . . - . . 6 6 d f f f f f d 6 6 . . . - . . 6 6 6 d d d d d 6 6 6 . . . - . . . 6 6 6 6 6 6 6 6 6 . 5 5 5 - . . . . 6 6 6 6 6 6 6 . . 5 5 5 - . . . . . . . . . . . . . 5 5 4 - . . . . . . . . . . . . . 4 4 . - ` - - export const kita_rotary_left = bmp` - . . . . . . . . . . . . . . . . - . . . . . . . . . . . . . . . . - . . . . . . . . . . . . . . . . - . . . . . . . . . . . . . . . . - . . . . . . 9 9 9 9 8 . . . . . - . . . . . 9 9 9 9 9 8 . . . . . - . . . . 9 9 9 8 . . . . . . . . - . . . . 9 9 8 . . . . . . . . . - . . . . 9 9 8 . . . . . . . . . - . . 9 9 9 9 9 9 8 . . . . . . . - . . . 9 9 9 9 8 . . . . . . . . - . . . . 9 9 8 . . . . . . . . . - . . . . . . . . . . . . . . . . - . . . . . . . . . . . . . . . . - . . . . . . . . . . . . . . . . - . . . . . . . . . . . . . . . . -` - - export const kita_rotary_right = bmp` - . . . . . . . . . . . . . . . . - . . . . . . . . . . . . . . . . - . . . . . . . . . . . . . . . . - . . . . . . . . . . . . . . . . - . . . . . 8 9 9 9 9 . . . . . . - . . . . . 8 9 9 9 9 9 . . . . . - . . . . . . . . 8 9 9 9 . . . . - . . . . . . . . . 8 9 9 . . . . - . . . . . . . . . 8 9 9 . . . . - . . . . . . . 8 9 9 9 9 9 9 . . - . . . . . . . . 8 9 9 9 9 . . . - . . . . . . . . . 8 9 9 . . . . - . . . . . . . . . . . . . . . . - . . . . . . . . . . . . . . . . - . . . . . . . . . . . . . . . . - . . . . . . . . . . . . . . . . -` - export const run = bmp` . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . @@ -3201,62 +947,6 @@ bffffffffffffffffffffffffffffffb . . . . . . . . . . . . . . . . ` - export const soil_moisture = bmp` - . . . . . . . . . . . . . . . . - . . . . 8 . . . . . . . . . . . - . . . . 9 8 . . . . . 8 . . . . - . . . . 9 8 . . . . . 9 8 . . . - . . . 9 9 9 8 . . . . 9 8 . . . - . . . 9 9 9 8 . . . 9 9 9 8 . . - . . 9 9 9 9 9 8 . . 9 9 9 8 . . - . . 9 9 9 9 9 8 . 9 9 9 9 9 8 . - . . 9 1 9 9 9 8 . 9 9 9 9 9 8 . - . . 9 9 1 9 9 8 . 9 1 9 9 9 8 . - . . e 9 9 9 8 e e 9 9 1 9 9 8 . - . e e e e e e e e e 9 9 9 8 . . - . b e e e e e e e e e e e 5 5 5 - . . b e e e e e e e e e b 5 5 5 - . . . b b b b b b b b b . 5 5 4 - . . . . . . . . . . . . . 4 4 . -` - - export const distance_sensor = bmp` - . . . . . . . . . . . . . . . . - . . . . . . . . . . . . . . . . - . . . 6 6 6 . . . . 6 6 6 . . . - . . 6 1 1 1 6 . . 6 1 1 1 6 . . - . 6 1 1 9 1 1 6 6 1 1 9 1 1 6 . - . 6 1 9 9 9 1 6 6 1 9 9 9 1 6 . - . 6 1 1 9 1 1 6 6 1 1 9 1 1 6 . - . . 6 1 1 1 6 . . 6 1 1 1 6 . . - . . . 6 6 6 . . . . 6 6 6 . . . - . . . . 2 . . . . . . 2 . . . . - . . . . 2 . . . . . 2 2 2 . . . - . . . . 2 . . . . 2 2 2 2 2 . . - . . 2 2 2 2 2 . . . . 2 . 5 5 5 - . . . 2 2 2 . . . . . 2 . 5 5 5 - . . . . 2 . . . . . . 2 . 5 5 4 - . . . . . . . . . . . . . 4 4 . -` - - export const relay = bmp` - . . . . . . . . . . . . . . . . - . . . . . f f f f f f . . . . . - . . . . f b b b b b b f . . . . - . . . f b b b b 9 8 b b f . . . - . . f b b b b 9 8 b b b b f . . - . . f b b b 9 8 b b b b b f . . - . . f b b 9 8 b b b 9 b b f . . - . 9 9 9 9 8 b b b b 8 9 9 9 9 . - . . f b b 9 b b b b 9 b b f . . - . . f b b b b b b b b b b f . . - . . f b b b b b b b b b b f . . - . . . f b b b b b b b b f . . . - . . . . f b b b b b b f . 5 5 5 - . . . . . f f f f f f . . 5 5 5 - . . . . . . . . . . . . . 5 5 4 - . . . . . . . . . . . . . 4 4 . -` export const loud = bmp` . . . . . . . . . . . . . . . . . 2 2 2 2 2 2 2 2 2 2 2 2 2 2 . @@ -3293,24 +983,5 @@ bffffffffffffffffffffffffffffffb 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 -` - - export const decimalEditor = bmp` - . . . . . . . . . . . . . . . . - 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 - . . . . . . . . . . . . . . . . - . . . . . . . . . . 4 4 4 . . . - . . . f . . f f f . . 4 . . . . - . . f f . . . . f . . 4 . . . . - . . . f . . . . f . . 4 . . . . - . . . f . . f f f . . 4 . . . . - . . . f . . f . . . . 4 . . . . - . . . f . . f . . . . 4 . . . . - . . f f f . f f f . . 4 . . . . - . . . . . . . . . . 4 4 4 . . . - . . . . . . . . . . . . . . . . - 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 - . . . . . . . . . . . . . . . . - . . . . . . . . . . . . . . . . ` } diff --git a/icon-table.g.ts b/icon-table.g.ts new file mode 100644 index 00000000..fddc751f --- /dev/null +++ b/icon-table.g.ts @@ -0,0 +1,68 @@ +// AUTO-GENERATED by scripts/genicontable.js -- do not edit. +// Mapping source of truth: scripts/icon-map.json +namespace microcode { + // F4-encoded icon bitmaps, packed back to back + const ICON_BLOB = hex`870410001000000000000000000000000000000000000000000000000000000000000000ffdf0000000000005fdf0000000000005fdf0000000000ff5fff0f000000f05f5555df0000007fff55f5df0000f0ff7f5f7fdf0000f07777f777df0000f077777777df0000f0ffffffffdf000000d0dddddddd000000000000000000000000000000000087041000100000000000000000000000000000000000000000000000000000000000000000ee0e00000000004024ee0000f000004444e200000f00004444e200f0ffff0f4444e200000f00004444e20000f000004444e200000000004024ee0000000000d0eede000000000000dd0d00000000000000000000000000000000000000000000000000870410001000000000000000000000000000000000000000000000bbbb0b00000000b01111b1000000001b111d110c0000b0111d1d1dc10000b011111111c10000bfb99b12ddc10000b099991211c10000b0999b121dc10000009b991211dc000000c09919c10d00000000ccccdc0000000000d0dd0d0000000000000000000000000000000000008704100010000000000000000000000000000000000000008088888888888808808888588885880f808888855888880f805585888588280f504454888888280f504454585858280f504454888888280f805585888588280f808888855888880f808888588885880f80888888888888080000000000000000000000000000000000000000000000008704100010000000000000000000000000800000000000000000080000000000000880000000000000800008004000008000080800500400000808084454450000080808555555040008080844544500800008080050040000800008004000000008800000000000000008000000000000800000000000000000000000000000000000000000000087041000100000001111111111111111111111111111111111111111111111111111111111111111111111f1ff11111111111111111f111f11bbbbcb1cf1111f11ccccccccf1ff1f11c1ccccccf1ff1f11c1cccc1cf1111f11111111111f111f111111f1ff1111111111111111111111111111111111111111111111111111111111111111111111870410001000000054040000000000005404000000000000540400cccccccc005404c0cfdddddd0d54044cff1c11111154045c44dcdddddd54445445dcfffddf40555555dcdddfdd00445445dcfffddf00005c44dcdddddd00004cffdcdddddd0000c0cfbbbbbb0b000000cccccccc00000000000000000000000000000000000000000000000000870410001000000054040000000000005404000000000000540400cccccccc005404c0cfdddddd0d54044cff1c11111154045c44dcdddddd54445445dcffdddd40555555dcddffdf00445445dcffdddd00005c44dcdddddd00004cffdcdddddd0000c0cfbbbbbb0b000000cccccccc00000000000000000000000000000000000000000000000000870410001000000054040000000000005404000000000000540400cccccccc005404c0cfdddddd0d54044cff1c11111154045c44dcdddddd54445445dcdffddf40555555dcdfdfdf00445445dcffdddf00005c44dcdddddd00004cffdcdddddd0000c0cfbbbbbb0b000000cccccccc000000000000000000000000000000000000000000000000008704100010000000000000000000000000000000000000000000000000000000000000000000000000000000000000006066666666666606666666966966666666ffff9ff9ffff66f6cfcc9cc9ccfc6f66ffff9ff9ffff666666669669666666606666666666660600000000000000000000000000005545000000000000554500000000000055048704100010000000000000000000000000000000000000000000666666660000006066dddd6606000066d6ffff6d66000066fdffffdf66000066fdffffdf660000661d11ffdf66000066fdffffdf66000066fdffffdf66000066d6ffff6d6600006066dddd6606000000666666660000000000000000554500000000000055450000000000005504870410001000000000000000000000000000000000e00b000000009999eebe000000999991e9ee0b8099999919e9ee0b0088999999e9ee0b0000889999e8ee0b0000008888eeee0b0000000000eeee0b0000009099e9ee0b000090991999ee0b009899999991ee0b008098999999be000000809899895545000000808808554500000000000055048704100010000000000000000000000000006606000000000060116100000200001691110600220000169919262222020016911106002200006011610000020000006606000000000000660600000000006011610020000000169111062200000016991926222202001691110622000000601161002055450000660600005545000000000000550487041000100000000000000000000000000000000000000000ffffffffffff0000ff7f77ffffff0000ff7f77ffffff0000ff7f77ffffff0000ffffffffffff0000dddddddddddd0000ddfdffdddddd0000ddfdffdddddd0000ddfdffdddddd0000dddddddddddd0000000000000000000000000000005545000000000000554500000000000055048704100010000000000000000000000000000000000000000000f0ffffff00000000ff9999f90d0000f0f999f9ff0d0000ffff99f9f50d00009f9999f9f50d00009f99f9fff5ff0000ffffff5555f50d0000fdf75f55ff0d0000fffff7f5f70d00007f77777ff70d00007f777777f70d0000ffffffffff0d000000dddddddd0d000000000000000087041000100000000000000000000000000000bccc000000000000bccc0000000000c0cbcc0c00000000bccccccc000000c0cbcccccc0c0000000000000000000003204000069000300002000460000000002040000600000000020004600000002000400005060050000200046000000020004000000600000250000400000000000000000000008704100010000000000000000000000000000000000000000000000000f00f000000000000cfbc000000000000cfbc000000f0ccccccbb000000c0bbbbbb0b000000cc0b000000000000bc0b0000000000c0bc0000ff000000c0bb00f0cc0b0000cf0b00f0cc0b0000ccccccccbc0b0000b0bbbbbbbb000000000000000000000000000000000000870410001000000000000000000000000000020000000000000020f0ffffff00000000f0ff2fff0b002222f02ffff20b000000f0fffff20b000000f02ffff20b000000ddf22fff0b000020d4fdffff0b00004224bdbbbb0b002044e20b000000004224be000202002044e20b000220004024be000002000000e20b00000200000000000000000000870410001000000000000000000000000000080000000000008000000000000000088000000000008000080000040000808000084005000080808000544544048080804055555505808080005445440480800008400500008000080000040000000880000000000000800000000000000000080000000000000000000000000000000000000000008704100010000000000000000000000000800000000000000000080060006000000880009606960600800008660666068000080896069606000808086000600000080808000000000008080800000000800008086000600000800008960696060008800066066606000008009606960600800000600060000000000000000000000000000000000087041000100000000000ffffffbf000000ff4ff422ffbf00f0554ff4226ff60bf055ffffff6ff60bffff0f0000f0ffdf4ff4000000f088bf4ff4000000f088bfffff000000f0ffbf9ff9000000f0aabf9ff9000000f0aabfffff0f0000f0ffbff0bbffffffcffcdbf0bb7ff7eecffcdb00ff7ff7eeff554500d0ffffffbf55450000dddddddd5504870410001000000000000000000000000000000000000000000000cccccccc000000c0cfdddddd0d0000fcff1c11111100004c4fdcdddddd00005c54dcfffddf00445445dcdddfdd40555555dcfffddf54445445dcdddddd54045cf4dcdddddd540440cfbbbbbb0b540400cccccccc00540400000000000054040000000000005404000000000000870410001000000000000000000000000000000000000000000000cccccccc000000c0cfdddddd0d0000fcff1c11111100004c4fdcdddddd00005c54dcffdddd00445445dcddffdf40555555dcffdddd54445445dcdddddd54045cf4dcdddddd540440cfbbbbbb0b540400cccccccc00540400000000000054040000000000005404000000000000870410001000000000000000000000000000000000000000000000cccccccc000000c0cfdddddd0d0000fcff1c11111100004c4fdcdddddd00005c54dcdffddf00445445dcdfdfdf40555555dcffdddf54445445dcdddddd54045cf4dcdddddd540440cfbbbbbb0b540400cccccccc00540400000000000054040000000000005404000000000000870410001000000000000000000000000000020000000000000020f0ffffff00000000f0ff22ff0b002222f02f2fff0b000000f0f22fff0b000040f02222f20b000050f4ff2fff0b00445445ffffff0b40555555bbbbbb0b5444544500000000540450040002020054044000000220005404000000020000540400000002000054040000000000008704100010000000000000000000000000000000000000000088888888888800808888b8bb888808808888b8cc8b8808808888b8cb8b880800888888bbbc88000000000000cb0b000000000000b0bc00000000400200cb0b402200002400b00c00402222220200b000000000240000000000004002005545000000000000554500000000000055048704100010000000000000000000000000000090000000000000ff9fff0f000000f0bb9bbbfb000000bfbb9bbbbb0f00f0bbbb89b9bbfb00f0bb9bb8bbbbfb00f0bb89bbbbbbfb00f09bb8bbbbbbfb00f08bbbbbbbbbfb00f0bbbb89b9bbfb0000bfbb9bbbbb0f0000f0bb9bbbfb00000000ff9fff0f5545000000900000554500000000000055048704100010000000000000000000000000000000000000000088888888888800808888b8bb888808808888b8cc8b8808808888b8cb8b880800888888bbbc88000000000000cb0b000000000000b0bc00000000000000cb0b007707ff0f00b000707707ffff000000707707ffff000000007707ff0f00554500000000000055450000000000005504870410001000000000000000000000000000000000000000444444444444040055555555555545004454555555554500dd4d55555555d400004055f5ff5504000040555f555f0400004055f5ff550400004055555555040044545555555545005555555555554500444444444444d400dddddddddddd0d0000000000000000000000000000000000870410001000000000000000000000000000000000000000444444444444040055555555555545004454555555554500dd4d55555555d400004055f5555f0400004055ffff5f040000405555555f0400004055555555040044545555555545005555555555554500444444444444d400dddddddddddd0d0000000000000000000000000000000000870410001000000000000000000000000000000000000000444444444444040055555555555545004454555555554500dd4d55555555d4000040555ff55f04000040555f5f5f0400004055f5555f0400004055555555040044545555555545005555555555554500444444444444d400dddddddddddd0d000000000000000000000000000000000087041000100000000000000000000000000000000000000000606666666606000066fcffffcf66000066ffccccff66000066cffffffc66000066cffffffc66000066cffffffc66000066cffffffc66000066ffccccff66000066fcffffcf6600006066666666060000000000000000000000f0000f0055450000ffff0f005545000000000f00550487041000100000000000000000000000000000000000000000606666666606000066fcffffcf66000066ffccccff66000066cffffffc66000066cffffffc66000066cffffffc66000066cffffffc66000066ffccccff66000066fcffffcf66000060666666660600000000000000000000000ff00f00554500000f0f0f0055450000f0000f0055048704100010000000000000000000000000000000000000000000004444000000000040dddd0400000000d440044d00000000544054400500000054d05d4005000000540000400500000054000040050000005400004005000000544004400500000054405440050000004dd55dd400000000d044440d0000000000dddd000000000000000000000087041000100000000000000000000000000000000000000000b0bbbbbbbb0b00001b11111111c100001b11212112c100001b22211112c100001b11212122c100001b11111111c100001b11111111c100001b11111ff1c100001b11f1f1f1c100001b11f1111fc100001b11111111c10000c0ccccccccdc000000d0dddddd0d00000000000000000087041000100000000000000000000000000000000000000000b0bbbbbbbb0b00001b11111111c100001b11111111c100001b11121121c100001b21222222c100001b11111121c100001b11111111c100001b11111ff1c100001b11f1f1f1c100001b11f1111fc100001b11111111c10000c0ccccccccdc000000d0dddddd0d00000000000000000087041000100000000000000000000000000000000000000000b0bbbbbbbb0b00001b11111111c100001b11121111c100001b21112221c100001b21111211c100001b11221111c100001b11111111c100001b11111ff1c100001b11f1f1f1c100001b11f1111fc100001b11111111c10000c0ccccccccdc000000d0dddddd0d00000000000000000087041000100000000000000000000000000000000000000000b0bbbbbbbb0b00001b11111111c100001b21221121c100001b21211121c100001b21211121c100001b21112212c100001b11111111c100001b11111ff1c100001b11f1f1f1c100001b11f1111fc100001b11111111c10000c0ccccccccdc000000d0dddddd0d00000000000000000087041000100000000000000000000000000000bccc000000000000bccc0000000000c0cbcc0c00000000bccccccc000000c0cbcccccc0c0000000000000000000000000880000000000000800800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008704100010000000000000000000000000000000808800000000000000000800009099998008000000906666008000000090f6ffff0008000090f655f50000000090f655f59600000090f655f59600000000f055f59600000008f0ffff9600000080006066960000000088909999000000080000000000000080880000000000000000000000000087041000100000000000000000000000000000000000000000000099999989000000009999998800000000999989860000000099996886000008009989668600000800998966860000080099896686000008809989668600008080988966980000008888f0f5000000008008f00f000000008000f0000000000000000000000000000000000000008704100010000000000000000000000000000000f000000000000000f00f000000008000f0f5000000008098f9550f0000008888f955f50000808098f955f50000088099f955f50000080099f955f50000080099f955f50000080099995ff5000000009999f9f500000000999999ff00000000999999f9000000000000000000000000000000000087041000100000000000000000000000000000000000000000009999999900000000898888980000000068666686000000f0555555550f00005f55555555f50000ffffffffffff000080999999990000008898999999000080888899999900000080000000000000008000000000000000000800080000000000808800000000000000000000000087041000100000000000000000000000000080880000000000000800080000000080000000000000008000000000000080888899999900000088989999990000008099999999000000ffffffffffff00005f55555555f50000f0555555550f00000068666686000000008988889800000000999999990000000000000000000000000000000000008704100010000000000000000000000000000000000000000000c0cccccc0c000000fcdcdddddd0000c0ffcf1111110100c0ffc4dddddd0d00c04fc5fddfff0d00c05fc5ddfddd0d00c04fc5fddfff0d00c0ffc4dddddd0d00c0ffcfdddddd0d0000fcbcbbbbbb000000c0cccccc0c000000000000000000000000000000000000000000000000008704100010000000000000000000000000000000000000000000c0cccccc0c000000fcdcdddddd0000c0ffcf1111110100c0ffc4dddddd0d00c04fc5fddfdd0d00c05fc5ddfdff0d00c04fc5fddfdd0d00c0ffc4dddddd0d00c0ffcfdddddd0d0000fcbcbbbbbb000000c0cccccc0c000000000000000000000000000000000000000000000000008704100010000000000000000000000000000000000000000000c0cccccc0c000000fcdcdddddd0000c0ffcf1111110100c0ffc4dddddd0d00c04fc5fdddff0d00c05fc5fdfdfd0d00c04fc5fddffd0d00c0ffc4dddddd0d00c0ffcfdddddd0d0000fcbcbbbbbb000000c0cccccc0c0000000000000000000000000000000000000000000000000087041000100000000000000000000000000000000000000000000000900000000000000090090000000000999999000000009099999900000000998998890000000099089008000000009900800000000000990000000000000088000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000870410001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000088000000000000009900000000000000990080000000000099089008000000009989988900000000909999990000000000999999000000000000900900000000000090000000000000000000000000000000000000008704100010000000000000000000000000000000000000000000000000000000000000ff000000000000f0f20000000000002ff2ffffff0000f022222222f200002f22222222f20000f022222222f20000002ff2ffffff000000f0f200000000000000ff000000000000000000000000000000000000000000000000000000000000000000000000870410001000000000000000000000000000000000000000000000000000000000000000ff000000000000009f0f000000ffffff9ff90000009f999999990f00009f99999999f900009f999999990f0000ffffff9ff90000000000009f0f000000000000ff000000000000000000000000000000000000000000000000000000000000000000000087041000100000000000000000000f000000000000f00f0000000000005f0f0000000000f0550f00000000005f550f00008000005f550f00008800005f550f00808888085f550f00008800005f550f00008000005f550f00000000005f550f0000000000f0550f0000000000005f0f000000000000f00f000000000000000f0000000000000000008704100010000000000000000000000000f000000000000000f00f000000000000f0f5000000000000f0550f0000000000f055f50000000000f055f50000080000f055f50000880000f055f58088880800f055f50000880000f055f50000080000f055f50000000000f0550f0000000000f0f5000000000000f00f000000000000f000000000000087041000100000000000000000000000000000000000000000000000000000000000f0ffffffff000000ff999999f90000f0f9999999f90000ffff999999f900009f99f999f9f900009f99f9fffff900009f999999f9f900009f99999999f900009f99999999f90000ffffffffffff0000000000000000000000000000000000000000000000000087041000100000000000000000000000000000000000000000000000000000000000f0ffffffff000000ff555555f50000f0f5555555f50000ffff555ff5f500005f55f555fff500005f55f5f5f5f500005f55555ff5f500005f55555555f500005f55555555f50000ffffffffffff0000000000000000000000000000000000000000000000000087041000100000000000000000000000000000000000000000000000000000000000f0ffffffff000000ff444444f40000f0f4444444f40000ffff444444f400004f44f444f4f400004f44f4f4f4f400004f44444f4ff400004f44444444f400004f44444444f40000ffffffffffff0000000000000000000000000000000000000000000000000087041000100000000000000000000000000000000000000000000000000000000000f0ffffffff000000ff333333f30000f0f3333333f30000fffff3ff33f300003f3333f333f300003f33f3fffff300003f3333f333f300003f33333333f300003f33333333f30000ffffffffffff0000000000000000000000000000000000000000000000000087041000100000000000000000000000000000000000000000000000000000000000f0ffffffff000000ff777777f70000f0f7777777f70000fffff7fff7f700007f77f7f7f7f700007f77f7f7f7f700007f77f7777ff700007f77777777f700007f77777777f70000ffffffffffff000000000000000000000000000000000000000000000000008704100010000000ffffffffffeeffffffffffffef22feffffffffffef22feffffffeeffffeeeffeffef22feffff2ee2ffef22feffff2ee2ffffeeffffffeffeffffffffffff2ee2ffffffffffff2ee2ffffeeffffffeffeffef22feffff2ee2ffef22feffff2ee2ffffeeffffeeeffeffffffffef22feffffffffffef22feffffffffffffeeffff870410001000000000000000000000000000000000000000000040444400000000005435550400000040553f554500000054f555ff5504000054555fff5f0400005455552f5204000054555f2f5204000054f5552f5504000040553f55450d000000543555d4000000004044440d0000000000dddd000000000000000000000000000000000000008704100010000000000000000000000000000000000000000000404444000000000054555504000000405555554500000054f55f5f55040000545555f555040000545555f555040000545555f55504000054f55f5f5504000040555555450d000000545555d4000000004044440d0000000000dddd00000000000000000000000000000000000000870410001000000000000000000000000000000000000000000000444400800000004055550498000000545f5f45990000005455f545990000005455f54599000000545f5f45990000004055559499000000004444989900008000d088998800000840889989dd000008549889d8000000084088d80d0000008000dd0d00000000000000000000008704100010000000000000000000000000000000000000000000ff66060000000060ff7f670000000076f17f770600000076f77f7f67000000767777f777060000767777f77706000076f77f7f670d000076ff7f77d600000060f17f670d00000000ff66d60000000000d0dd0d0000000000000000000000000000000000000000000000000000008704100010000000000000000000000000000000000000000000404444000000000054555504000000405555554500000054f55ff5550400005455555f550400005455555f550400005455555f5504000054f55ff55504000040555555450d000000545555d4000000004044440d0000000000dddd000000000000000000000000000000000000008704100010000000000000000000000000000000000000000000000000000200000000000020020000000000002202000000222222220e000020222222e20d000020e2eeeede00000020dedddd0d000000e0eeeeeeee0e0000e0edededed0d0000e0eeeeeeee0e000000dddddddd0d00000000000000000000000000000000000000000000000000870410001000000000000000000000000000006008000000000000960800000000009956080009000090119608099000001999560890900000997996889090000099f7568890900000997796889090000099f756d89090000090799608099000000099560800090000000096080000000000006d08000000000000d00d0000000000000000000000870410001000000000000000000000000000220d000000000020ddd40000000000d200d400000000000d400d000000000000d400550d000000400d50ddd7000000400dd500d7000000d0550d700d00000000dd00d7000000000000700d900d00000000700dd90000000000d0990d000000000000dd0000000000000000000000000000000000000087041000100000000000000000000000000000000000000000300030000000000053033000300000003000530300000000000053030000000000335535030000003355555535030000003355350300000000005303000000000000530300000000030030003000000000003000530300000030000030000000000000000000000000000000000000870410001000000000000000000000000000000000000000000040444400000000005455550400000040f555554500000054f55555550400005455f5ff550400005455f52f550400005455f52f5504000054f555555504000040f55555450d000000545555d4000000004044440d0000000000dddd00000000000000000000000000000000000000870410001000000000000000000000000080000000000000000008000000000000088000000000000080000800000000800008080044040000080808401545000008080840114100000808084015450080000808004404000080000800000000000880000000000000000800000000000080000000000000000000000000000000000000000000008704100010000000000000000000000000000000000000000000b0cccccc0c0000001bbbbbbbcb0000b011bbbcbbcb00001b11cbbbbbcb00001b11cbbbbccc00001b1bcbbbbccb00001b11bbccbbcb00001b11bbbbbbcb00001bb1ddddddbd00001bdbddbddddb0000bbdddbddbd0d0000b0bbbbbbdb000000000000d00d0000000000000000000087041000100000004444444444444404444444444444440444444444f41c440444cf4144cf11410444cf41f41c11110444cf4144f41c440444cfc144cf11440444f411cc1c41440444441f11114444044444444444444404444414441444440444444441414444044444441444444404444444414144440444441444144444044444444444444404870410001000000011111111111111ff111111111111f1cc111111111111f1cc111111111111111111111111ff111111111111f1cc111111111111f1cc111111111111111111111111ff111111111111f1cc111111111111f1cc111111111111111111111111111111111111111111ff111111111111f1cc111111111111f1cc11111111111111118704100010000000000000000000000000001011110000000010212222bb00000021222222220b000021222222220b00102222222222b200102222222222b200102222222222b200102222222222b200102222222222b200002b22222222db00002b22222222db0000b02b2222bb0d000000b0bbbbdd0000000000dddd0d000000000000000000008704100010000000000000000000000000001011110000000010717777bb00000071777777770b000071777777770b00107777777777b700107777777777b700107777777777b700107777777777b700107777777777b700007b77777777db00007b77777777db0000b07b7777bb0d000000b0bbbbdd0000000000dddd0d000000000000000000008704100010000000000000000000000000001011110000000010818888bb00000081888888880b000081888888880b00108888888888b800108888888888b800108888888888b800108888888888b800108888888888b800008b88888888db00008b88888888db0000b08b8888bb0d000000b0bbbbdd0000000000dddd0d000000000000000000008704100010000000000000000000000000001011110000000010a1aaaabb000000a1aaaaaaaa0b0000a1aaaaaaaa0b0010aaaaaaaaaaba0010aaaaaaaaaaba0010aaaaaaaaaaba0010aaaaaaaaaaba0010aaaaaaaaaaba0000abaaaaaaaadb0000abaaaaaaaadb0000b0abaaaabb0d000000b0bbbbdd0000000000dddd0d000000000000000000008704100010000000000000000000000000001011110000000010515555bb00000051555555550b000051555555550b00105555555555b500105555555555b500105555555555b500105555555555b500105555555555b500005b55555555db00005b55555555db0000b05b5555bb0d000000b0bbbbdd0000000000dddd0d000000000000000000008704100010000000000000000000000000001011110000000010f1ffffbb000000f1ffffffff0b0000f1ffffffff0b0010ffffffffffbf0010ffffffffffbf0010ffffffffffbf0010ffffffffffbf0010ffffffffffbf0000fbffffffffdb0000fbffffffffdb0000b0fbffffbb0d000000b0bbbbdd0000000000dddd0d0000000000000000000087041000100000000020224455777707002242547577770720224455777788082042545577878808204254757788c80c204254758788cc0c2042547587c8ac0a2042547587c8ac002042547587c8ac002042547587c8ac0a204254758788cc0c204254757788c80c20425455778788082022445577778808002242547577770700202244557577078704100010000000cccccccccccccccccccdccdcccccccccdcd1cccccccccccccccdcccccccccccdcccccccccccccccccccccccccccdccccccccccccdcd1cccccccccdcccccdccccccccccccccccccccccccdccc1ccccccccccc1dcdccccccccccccdcccccccccccccccccccccccdccccccdcccccccc1dcdccccccccccccdccccccccccccccccccc8704100010000000200000000000200020000000000020002000f000000f20002000ffffff0f200020000000000f2000200000000000200020000ff0ff0f200020000ff0000f20002000ffff000f200020000000000020002040000000402000204044444444200020400000004020002000000000002000200000000000200020000000000020008704100010000000000000000000000000000000000000000000000c000000000000c0cccccc0c0000001cbc1111c10000c01ccccc1cc100000cdcbcddddcd00000fdfcfccdcfd00000fdfbfddddfd0000f0bfcfccbcfb000000bfcfbbbbfb000000f0ffffffdf000000000fdddd0d000000000000000000000000000000000000000000000000008704100010000000000000000000000000000000000000000000000000000000000000ffff0000000000005ff50000000000005ff500000000f0ff5ff5ff0f0000f0555555550f0000f0555555550f0000f0ff5ff5ff0f000000005ff50000000000005ff5000000000000ffff0000000000000000000000000000000000000000000000000000008704120012000000dddddddddddddddddd000000cddddccddddccddddc000000dddddddddddddddddd000000dddddddddddddddddd000000cddddddddddddddddc000000dddddddddddddddddd000000dddddddddddddddddd000000cddddddddddddddddc000000dddddddddddddddddd000000dddddddddddddddddd000000cddddddddddddddddc000000dddddddddddddddddd000000dddddddddddddddddd000000cddddddddddddddddc000000dddddddddddddddddd000000dddddddddddddddddd000000cddddccddddccddddc000000dddddddddddddddddd0000008704120012000000bbbbbbbbbbbbbbbbbb000000dbbbbddbbbbddbbbbd000000bbbbbbbbbbbbbbbbbb000000bbbbbbbbbbbbbbbbbb000000dbbbbbbbbbbbbbbbbd000000bbbbbbbbbbbbbbbbbb000000bbbbbbbbbbbbbbbbbb000000dbbbbbbbbbbbbbbbbd000000bbbbbbbbbbbbbbbbbb000000bbbbbbbbbbbbbbbbbb000000dbbbbbbbbbbbbbbbbd000000bbbbbbbbbbbbbbbbbb000000bbbbbbbbbbbbbbbbbb000000dbbbbbbbbbbbbbbbbd000000bbbbbbbbbbbbbbbbbb000000bbbbbbbbbbbbbbbbbb000000dbbbbddbbbbddbbbbd000000bbbbbbbbbbbbbbbbbb00000087040e0014000000dddddddddddddddddddd0000dddddddddddddddddddd0000dddddddddddddddddddd0000d0dddddddddddddddd0d000000dddddddddddddddd00000000d0dddddddddddd0d0000000000dddddddddddd000000000000d0dddddddd0d00000000000000dddddddd0000000000000000d0dddd0d000000000000000000dddd00000000000000000000d00d0000000000000000000000000000000000000000000000000000000000008704090009000000f0ffffff000000001f1111110f0000001f1111110f0000001f1111110f0000001f1111110f0000001f1111110f0000001f1111110f0000001f1111110f000000f0ffffff00000000870420002100000010111111b100000000000010111111b100000000b10000000000000000000000000000100b000000b10000000000000000000000000000100b000000b10000000000000000000000000000100b000000b10000000000000000000000000000100b000000b10000000000000000000000000000100b000000b10000000000000000000000000000100b000000b10000000000000000000000000000100b000000b10000000000000000000000000000100b000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010b100000000000000000000000000000000000010b100000000000000000000000000000000000010b100000000000000000000000000000000000010b1000000000000000000000000000000001011111111b100000000000000000000000000001011111111b10000000000000000000000000000000010b100000000000000000000000000000000000010b100000000000000000000000000000000000010b100000000000000000000000000000000000010b1000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000b10000000000000000000000000000100b000000b10000000000000000000000000000100b000000b10000000000000000000000000000100b000000b10000000000000000000000000000100b000000b10000000000000000000000000000100b000000b10000000000000000000000000000100b000000b10000000000000000000000000000100b000000b10000000000000000000000000000100b00000010111111b100000000000010111111b1000000008704100010000000000000000000000000000000000000008088888888888800d0dd8d8888888800d0dd8d1311111100d0dd8d1311111100d0dd8d131111110080888d131111110080888d1311111100d0dd8d1311111100d0dd8d1311111100808888131111110000888888888888000080888888888800000000dddddd0d0000000000000000008704100010000000000000000000000000000000000000008088888888888800d0dd8d8888888800d0dd8d1311111100d0dd8d1311111100d0dd8d131111110080888d13f1111f0080888d13ffff1f00d0dd8d1311111f00d0dd8d13111111008088881311111100008888888888880000808888888888000000d0dddddd0d0000000000000000008704100010000000000000000000000000000000000000008088888888888800d0dd8d8888888800d0dd8d1311111100d0dd8d1311111100d0dd8d131111110080888d131ff11f0080888d131f1f1f00d0dd8d13f1111f00d0dd8d13111111008088881311111100008888888888880000808888888888000000d0dddddd0d0000000000000000008704100010000000000000000000000000000000000000008088888888888800d0dd8d8888888800d0dd8d1311111100d0dd8d1311111100d0dd8d131111110080888d131f111f0080888d131f1f1f00d0dd8d13f1ff1100d0dd8d13111111008088881311111100008888888888880000808888888888000000d0dddddd0d0000000000000000008704100010000000000000000000000000000000000000000022222222222200204244444444240220444444444444022044444444444402204444444444440220444444444444022044444444444402204444444444440220444444444444022044444444444402204244444444240200222222222222000000000000000000000000000000000087041000100000000000000000000000000000000000000000cccccccccccc00c0cccccccccccc0cc0cccccccccccc0cc0cccccccccccc0cc0cccccccccccc0cc0cccccccccccc0cc0cccccccccccc0cc0cccccccccccc0cc0cccccccccccc0cc0cccccccccccc0cc0cccccccccccc0c00cccccccccccc00000000000000000000000000000000008704100010000000111111111111111111111111111111111111111111111111111111cccccc11111111ccffffff1c1111c1ffffffffcf1111fcffffffffff1cc1ffffffffffff1cc1ffffffffffff1cc1ffffffffffff1cc1ffffffffffcf1111fcffffffff1c1111c1ffffffcc11111111cccccc11111111111111111111111111111111111111870410001000000011111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111f11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111118704200021000000101111111111111111111111111111b100000000111111111111111111111111111111110b000000111111111111111111111111111111110b000000111111111111111111111111111111110b0000001111bbbbbbbbbbbbbbbb1111111111110b00000011b111111111111111111b11111111110b00000011b11111111111111111db11111111110b00000011b11111114444111111db11111111110b00000011b11111445555441111db11111111110b00000011b11141555555551411db11111111110b00000011b11141555555551411db11111111110b00000011b11154f55ff5554511b1db111111110b00000011b111545555555f451111b11d1111110b00000011b111545555555f45111111db1111110b00000011b11154f55ff5554511b11bdb1111110b00000011b11141555555551411dbbddb1111110b00000011b11141555555551411dbd01d1111110b00000011b111114455554411118b88881111110b00000011b111111144441111116866861811110b00000011b111111111111111816666668811110b00000011b111111111111111681611618618110b0000001111bbbbbbbbbbbbbb686161668618110b000000111111dddddddddddd686161668618110b000000111111111111111111681611618618110b00000011111111111111111181666666881d110b00000011111111111111111111686686d811110b000000111111111111111111118188881d11110b0000001111111111111111111111dddd1111110b000000111111111111111111111111111111110b000000111111111111111111111111111111110b000000111111111111111111111111111111110b000000101111111111111111111111111111b100000000` + // u16le start offset of each icon in ICON_BLOB (duplicates share a slot) + const ICON_OFF = hex`00008800100198012002a8023003b8034004c8045005d8056006e8067007f807800808099009180aa00a280bb00b380cc00c480dd00d580ee00e680ff00f781000118811101298122013a8133014b8144015c8155016d8166017e8177018f8188019081a901a181ba01b281cb01c381dc01d481ed01e581fe01f6820f020782100228822102398232024a8243025b8254026c8265027d8276028e8287029f829802a082b902b182ca02c802d602e102f602fe8317032f8328033083490341835a0352836` + + // tid -> (icon index + 1); 0 = no icon for that tid + export const TID_ICON_IDX = hex`00000000000000000000016302640304650506070809660a0b0000670c0d0e0000000000000000000f1000111213141516171819001a1b1c00000000000000000000000000001d1e1f686920212200000000002324252610270028292a2b2c2d2e2f30313233000000000000343500000000000000000000000000000000000000000000000000000000000000000000000000000000363738393a00000000003b00003c3d3e3f4041424344452d2e2f4647484965004a4b4c4d4e4f50510000000000000000000000000000000004660600000000000000000000006a6b6c6d6e6f000000000000000000000000000000000000000000000000000000005252` + // icon index for each entry of ICON_NAMES + export const ICON_NAME_IDX = hex`52535455565731326f705871595a5b5c725d5e5f6061732174` + export const ICON_NAMES = + "delete,plus,when_insertion_point,do_insertion_point,rule_arrow,rule_handle,rule_up,rule_down,edit_program,largeSettingsGear,new_program,MISSING,disk,disk1,disk2,disk3,largeDisk,solid_red,led_off,note_on,note_off,smiley_buttons,microbitLogo,microbit_logo,microbitLogoBtn".split( + ",", + ) + + const ICON_BLOB_COUNT = 98 + const iconCache: Bitmap[] = [] + export function iconByIndex(idx: number): Bitmap { + let bmp = iconCache[idx] + if (!bmp) { + if (idx < ICON_BLOB_COUNT) { + const start = ICON_OFF.getNumber(NumberFormat.UInt16LE, idx * 2) + // F4 buffer size from its own header: 8-byte header plus + // w columns of h nibbles padded to a 32-bit boundary + const w = ICON_BLOB.getNumber(NumberFormat.UInt16LE, start + 2) + const h = ICON_BLOB.getNumber(NumberFormat.UInt16LE, start + 4) + const size = 8 + (((h * 4 + 31) >> 5) << 2) * w + bmp = bitmaps.ofBuffer(ICON_BLOB.slice(start, size)) + } else { + bmp = externIcon(idx - ICON_BLOB_COUNT) + } + iconCache[idx] = bmp + } + return bmp + } + + // icons drawn procedurally at startup rather than stored in the blob + function externIcon(i: number): Bitmap { + if (i == 0) return ui.finger_press + if (i == 1) return ui.accelerometer + if (i == 2) return ui.thermometer + if (i == 3) return ui.magnet + if (i == 4) return ui.led_light_sensor + if (i == 5) return ui.tile_button_a + if (i == 6) return ui.tile_button_b + if (i == 7) return icondb.eq + if (i == 8) return icondb.neq + if (i == 9) return icondb.lt + if (i == 10) return icondb.lte + if (i == 11) return icondb.gt + if (i == 12) return icondb.gte + if (i == 13) return ui.largeEditIcon + if (i == 14) return ui.largeSettingsGear + if (i == 15) return ui.MISSING + if (i == 16) return ui.largeDisk + if (i == 17) return ui.microbitLogo + if (i == 18) return ui.microbit_logo_btn + return ui.MISSING + } +} + +// consts still referenced directly by other code +namespace icondb { + export const disk = microcode.iconByIndex(89) + export const MISSING = microcode.iconByIndex(113) +} diff --git a/pxt.json b/pxt.json index 811c2222..e911d6bf 100644 --- a/pxt.json +++ b/pxt.json @@ -14,6 +14,7 @@ "config.ts", "main.ts", "README.md", + "icon-table.g.ts", "assets.ts", "field-editor-model.ts", "language.ts", diff --git a/scripts/genicontable.js b/scripts/genicontable.js new file mode 100644 index 00000000..21b66c3b --- /dev/null +++ b/scripts/genicontable.js @@ -0,0 +1,235 @@ +// Generates icon-table.g.ts: table-driven, blob-packed icon storage replacing +// the if/else chains in icons.get (assets.ts) and jacdacImages. +// +// The mapping (tid -> icon, name -> icon) lives in scripts/icon-map.json. +// Icon pixel data is read from the bmp`` literals in assets.ts, encoded to +// the same F4 buffer format the compiler emits for bmp literals, and packed +// into a single hex literal (ICON_BLOB) with a u16 offset table. Bitmaps are +// materialized on demand via bitmaps.ofBuffer(blob.slice(...)) and cached. +// +// Icons whose icondb consts are referenced outside icons.get keep a const, +// emitted here as an eager iconByIndex() so assets.ts can drop the literal. +// +// Run: node scripts/genicontable.js +const fs = require("fs") +const path = require("path") + +const root = path.join(__dirname, "..") +const map = JSON.parse( + fs.readFileSync(path.join(__dirname, "icon-map.json"), "utf8"), +) +const assetsSrc = fs.readFileSync(path.join(root, "assets.ts"), "utf8") + +// -- collect literals: icon-literals.json is the durable pixel store --------- +// Each entry is an array of row strings, one per pixel row, exactly as the +// MakeCode pixel editor prints them ("." = transparent, hex digit = color; +// spaces between characters are ignored). To add or edit an icon, paste the +// body of the img``/bmp`` literal here as quoted rows and rerun this script. +// A plain string with embedded newlines is accepted too. A bmp literal still +// present in assets.ts takes precedence and refreshes the store. +const litStore = path.join(__dirname, "icon-literals.json") +const toRows = v => + (Array.isArray(v) ? v : v.split("\n")) + .map(r => r.trim()) + .filter(r => r.length > 0) +const literals = {} +{ + if (fs.existsSync(litStore)) { + const stored = JSON.parse(fs.readFileSync(litStore, "utf8")) + for (const [name, v] of Object.entries(stored)) + literals[name] = toRows(v).join("\n") + } + const re = /export const (\w+) = bmp`([^`]*)`/g + let m + while ((m = re.exec(assetsSrc))) literals[m[1]] = toRows(m[2]).join("\n") + const out = {} + for (const [name, v] of Object.entries(literals)) out[name] = v.split("\n") + fs.writeFileSync(litStore, JSON.stringify(out, null, 1)) +} + +// -- F4 encoding, matching pxt's bmp literal output -------------------------- +function encodeF4(lit) { + const rows = lit + .split("\n") + .map(r => r.replace(/\s+/g, "")) + .filter(r => r.length > 0) + const w = Math.max(...rows.map(r => r.length)) + const h = rows.length + // column stride is padded to a 32-bit boundary, matching pxt's F4 layout + const colBytes = ((h * 4 + 31) >> 5) << 2 + const buf = Buffer.alloc(8 + colBytes * w) + buf[0] = 0x87 + buf[1] = 4 + buf.writeUInt16LE(w, 2) + buf.writeUInt16LE(h, 4) + for (let x = 0; x < w; x++) { + for (let y = 0; y < h; y++) { + const ch = rows[y][x] || "." + const v = ch === "." ? 0 : parseInt(ch, 16) + const off = 8 + x * colBytes + (y >> 1) + if (y & 1) buf[off] |= v << 4 + else buf[off] |= v + } + } + return buf +} + +// -- registry: unique symbols, blob-backed first, extern last --------------- +// extern = resolved from an existing const instead of blob data: +// - procedurally drawn icons (no bmp literal; const stays in assets.ts) +// - icons whose pixels match a ui-core icon (the package ships its own +// copy, so packing them into the blob would duplicate flash data) +const mappedSyms = new Set([ + ...Object.values(map.tidMap), + ...Object.values(map.nameMap), +]) +const uiByContent = new Map() +{ + const uiSrc = fs.readFileSync( + path.join(root, "pxt_modules/ui-core/icons.ts"), + "utf8", + ) + for (const m of uiSrc.matchAll(/export const (\w+) = bmp`([^`]*)`/g)) + uiByContent.set(encodeF4(m[2]).toString("hex"), m[1]) +} +const externExpr = new Map() +for (const sym of mappedSyms) { + if (!literals[sym]) externExpr.set(sym, "icondb." + sym) + else { + const twin = uiByContent.get(encodeF4(literals[sym]).toString("hex")) + if (twin) externExpr.set(sym, "ui." + twin) + } +} +const blobSyms = [...mappedSyms].filter(s => !externExpr.has(s)) +const externSyms = [...mappedSyms].filter(s => externExpr.has(s)) +const registry = [...blobSyms, ...externSyms] +const symIndex = new Map(registry.map((s, i) => [s, i])) +const indexOf = sym => symIndex.get(sym) +const tidTable = new Array(256).fill(0) +for (const t of Object.keys(map.tidMap) + .map(Number) + .sort((a, b) => a - b)) + tidTable[t] = indexOf(map.tidMap[t]) + 1 +const names = Object.keys(map.nameMap) +const nameIdx = names.map(n => indexOf(map.nameMap[n])) +if (registry.length > 255) throw new Error("registry exceeds u8 index range") + +// -- pack blob: identical pixel data shares one slot (pxt dedupes hexlits, +// so the blob must dedupe too or it comes out larger than what it replaces) +const chunks = [] +const offsets = [] +const contentOff = new Map() +let off = 0 +for (const sym of blobSyms) { + const b = encodeF4(literals[sym]) + const key = b.toString("hex") + if (contentOff.has(key)) { + offsets.push(contentOff.get(key)) + continue + } + contentOff.set(key, off) + offsets.push(off) + chunks.push(b) + off += b.length +} +const blob = Buffer.concat(chunks) +const offBuf = Buffer.alloc(2 * offsets.length) +offsets.forEach((o, i) => offBuf.writeUInt16LE(o, 2 * i)) +if (off > 0xffff) throw new Error("blob exceeds u16 offset range") + +// -- which blob symbols still need an icondb const --------------------------- +// any icondb. reference outside its own (removed) literal definition +const keep = new Set() +{ + // only files actually compiled into the build matter + const pxtJson = JSON.parse( + fs.readFileSync(path.join(root, "pxt.json"), "utf8"), + ) + const tsFiles = pxtJson.files + .filter(f => f.endsWith(".ts") && f !== "icon-table.g.ts") + .map(f => path.join(root, f)) + for (const p of tsFiles) { + let src = fs.readFileSync(p, "utf8") + if (path.basename(p) === "assets.ts") + src = src.replace(/export const \w+ = bmp`[^`]*`/g, "") + for (const m of src.matchAll(/icondb\.(\w+)/g)) + if (symIndex.has(m[1])) keep.add(m[1]) + } +} + +const toHex = b => b.toString("hex") +const out = `// AUTO-GENERATED by scripts/genicontable.js -- do not edit. +// Mapping source of truth: scripts/icon-map.json +namespace microcode { + // F4-encoded icon bitmaps, packed back to back + const ICON_BLOB = hex\`${toHex(blob)}\` + // u16le start offset of each icon in ICON_BLOB (duplicates share a slot) + const ICON_OFF = hex\`${toHex(offBuf)}\` + + // tid -> (icon index + 1); 0 = no icon for that tid + export const TID_ICON_IDX = hex\`${tidTable.map(v => v.toString(16).padStart(2, "0")).join("")}\` + // icon index for each entry of ICON_NAMES + export const ICON_NAME_IDX = hex\`${nameIdx.map(v => v.toString(16).padStart(2, "0")).join("")}\` + export const ICON_NAMES = "${names.join(",")}".split(",") + + const ICON_BLOB_COUNT = ${blobSyms.length} + const iconCache: Bitmap[] = [] + export function iconByIndex(idx: number): Bitmap { + let bmp = iconCache[idx] + if (!bmp) { + if (idx < ICON_BLOB_COUNT) { + const start = ICON_OFF.getNumber( + NumberFormat.UInt16LE, + idx * 2, + ) + // F4 buffer size from its own header: 8-byte header plus + // w columns of h nibbles padded to a 32-bit boundary + const w = ICON_BLOB.getNumber( + NumberFormat.UInt16LE, + start + 2, + ) + const h = ICON_BLOB.getNumber( + NumberFormat.UInt16LE, + start + 4, + ) + const size = 8 + (((h * 4 + 31) >> 5) << 2) * w + bmp = bitmaps.ofBuffer(ICON_BLOB.slice(start, size)) + } else { + bmp = externIcon(idx - ICON_BLOB_COUNT) + } + iconCache[idx] = bmp + } + return bmp + } + + // icons drawn procedurally at startup rather than stored in the blob + function externIcon(i: number): Bitmap { +${externSyms + .map((sym, i) => ` if (i == ${i}) return ${externExpr.get(sym)}`) + .join("\n")} + return ui.MISSING + } +} + +// consts still referenced directly by other code +namespace icondb { +${registry + .map((sym, i) => + // procedural icons (no literal) still have their const in assets.ts + keep.has(sym) && literals[sym] + ? ` export const ${sym} = microcode.iconByIndex(${i})` + : null, + ) + .filter(Boolean) + .join("\n")} +} +` +fs.writeFileSync(path.join(root, "icon-table.g.ts"), out) +fs.writeFileSync( + path.join(__dirname, "icon-blob-syms.json"), + JSON.stringify(registry, null, 2), +) +console.log( + `blob: ${registry.length} icons, ${blob.length} bytes; ` + + `${names.length} names; kept consts: ${[...keep].join(", ")}`, +) diff --git a/scripts/icon-blob-syms.json b/scripts/icon-blob-syms.json new file mode 100644 index 00000000..9124d532 --- /dev/null +++ b/scripts/icon-blob-syms.json @@ -0,0 +1,119 @@ +[ + "tile_start_page", + "finger_release", + "tile_timer", + "light_sensor", + "radio_receive", + "microphone", + "cupXwritten", + "cupYwritten", + "cupZwritten", + "kita_slider", + "kita_rotary", + "soil_moisture", + "distance_sensor", + "reflected_light_sensor", + "tile_switch_page", + "speakerFun", + "music", + "showScreen", + "radio_send", + "radio_set_group_small", + "rgbLed", + "cupXassign", + "cupYassign", + "cupZassign", + "showNumber", + "servo_set_angle", + "relay", + "servo_power", + "tile_pin_0", + "tile_pin_1", + "tile_pin_2", + "kita_key_1", + "kita_key_2", + "microbit_logo", + "tile_timespan_short", + "tile_timespan_long", + "tile_timespan_random", + "tile_timespan_fiveSeconds", + "speakerSoft", + "moveShake", + "moveTiltUp", + "moveTiltDown", + "moveTiltLeft", + "moveTiltRight", + "cupXread", + "cupYread", + "cupZread", + "kita_rotary_left", + "kita_rotary_right", + "temp_warmer", + "temp_colder", + "moveFaceUp", + "moveFaceDown", + "tile_page_1", + "tile_page_2", + "tile_page_3", + "tile_page_4", + "tile_page_5", + "iconEditor", + "soundGiggle", + "soundHappy", + "soundHello", + "soundMysterious", + "soundSad", + "soundSlide", + "soundSoaring", + "soundSpring", + "soundTwinkle", + "soundYawn", + "radio_value", + "diceToss", + "loop", + "melodyEditor", + "tile_color_red", + "tile_color_green", + "tile_color_blue", + "tile_color_magenta", + "tile_color_yellow", + "tile_color_black", + "tile_rainbow", + "tile_sparkle", + "decimalEditor", + "btn_delete", + "btn_plus", + "btn_when_insertion_point", + "btn_do_insertion_point", + "rule_arrow", + "rule_handle", + "largeNewProgramIcon", + "disk", + "disk1", + "disk2", + "disk3", + "solid_red", + "led_off", + "note_on", + "note_off", + "sampleSmileyButtons", + "finger_press", + "accelerometer", + "thermometer", + "magnet", + "led_light_sensor", + "tile_button_a", + "tile_button_b", + "eq", + "neq", + "lt", + "lte", + "gt", + "gte", + "largeEditIcon", + "largeSettingsGear", + "MISSING", + "largeDiskIcon", + "microbitLogo", + "microbit_logo_btn" +] \ No newline at end of file diff --git a/scripts/icon-literals.json b/scripts/icon-literals.json new file mode 100644 index 00000000..ef862508 --- /dev/null +++ b/scripts/icon-literals.json @@ -0,0 +1,2802 @@ +{ + "wordLogo": [ + ".111111.......111111...1111.......................................................1111111.................................1111..................", + "11bbbbbb.....11bbbbbb.11bbbb....................................................111bbbbbbb1..............................11bbbb.................", + "1bbbbbbbb...11bbbbbbbf1bbbbbf..................................................11bbbbbbbbbbb.............................1bbbbbf................", + "1bbbbbbbbb.11bbbbbbbbf1bbbbbf.................................................11bbbbbbbbbbbbb............................1bbbbbf................", + "1bbbbbbbbbb1bbbbbbbbbf1bbbbbf................................................11bbbbbbbbbbbbbbb...........................1bbbbbf................", + "1bbbbbbbbbbbbbbbbbbbbf.bbbbff...............................................11bbbbbbbbbbbbbbbbf..........................1bbbbbf................", + "1bbbbbbbbbbbbbbbbbbbbf..ffff.....1111111......1111...111.......1111111......1bbbbbbbbbbbbbbbbbb.....1111111.........111111bbbbbf....1111111.....", + "1bbbbbbbbbbbbbbbbbbbbf.1111....111bbbbbbb1...11bbbb.11bbb....111bbbbbbb1...11bbbbbbbfffbbbbbbbbf..111bbbbbbb1.....111bbbbbbbbbbf..111bbbbbbb1...", + "1bbbbbbbbbbbbbbbbbbbbf11bbbb..11bbbbbbbbbbb..1bbbbbb1bbbbb..11bbbbbbbbbbb..1bbbbbbbff...bbbbbbbf.11bbbbbbbbbbb...11bbbbbbbbbbbbf.11bbbbbbbbbbb..", + "1bbbbbbfbbbbbfbbbbbbbf1bbbbbf.1bbbbbbbbbbbbf.1bbbbbbbbbbbbf.1bbbbbbbbbbbbf.1bbbbbbff.....bbbbbff.1bbbbbbbbbbbbf..1bbbbbbbbbbbbbf.1bbbbbbbbbbbbf.", + "1bbbbbbf.bbbff1bbbbbbf1bbbbbf11bbbbbbbbbbbbb.1bbbbbbbbbbbbf11bbbbbbbbbbbbb.1bbbbbbf.......fffff.11bbbbbbbbbbbbb.11bbbbbbbbbbbbbf11bbbbfffbbbbbb.", + "1bbbbbbf..fff.1bbbbbbf1bbbbbf1bbbbbfffbbbbbbf1bbbbbfffbbbff1bbbbbfffbbbbbbf1bbbbbbf......11111..1bbbbbfffbbbbbbf1bbbbbfffbbbbbbf1bbbbff...bbbbbf", + "1bbbbbbf......1bbbbbbf1bbbbbf1bbbbff...bbbbff1bbbbbf...fff.1bbbbff...bbbbbf1bbbbbbb.....11bbbbb.1bbbbff...bbbbbf1bbbbff..1bbbbbf1bbbbb11111bbbbf", + "1bbbbbbf......1bbbbbbf1bbbbbf1bbbbf.....ffff.1bbbbbf.......1bbbbf....1bbbbf1bbbbbbbb...11bbbbbbf1bbbbf....1bbbbf1bbbbf...1bbbbbf1bbbbbbbbbbbbbbf", + "1bbbbbbf......1bbbbbbf1bbbbbf1bbbbf....1111..1bbbbbf.......1bbbbf....1bbbbf.bbbbbbbbb111bbbbbbbf1bbbbf....1bbbbf1bbbbf...1bbbbbf1bbbbbbbbbbbbbff", + "1bbbbbbf......1bbbbbbf1bbbbbf1bbbbb...11bbbb.1bbbbbf.......1bbbbb...11bbbbf.1bbbbbbbbbbbbbbbbbff1bbbbb...11bbbbf1bbbbb...1bbbbbf1bbbbffffffffff.", + "1bbbbbbf......1bbbbbbf1bbbbbf1bbbbbb111bbbbbf1bbbbbf.......1bbbbbb111bbbbbf..bbbbbbbbbbbbbbbbbf.1bbbbbb111bbbbbf1bbbbbb111bbbbbf1bbbbb..........", + "1bbbbbbf......1bbbbbbf1bbbbbf.bbbbbbbbbbbbbff1bbbbbf........bbbbbbbbbbbbbff...bbbbbbbbbbbbbbbff..bbbbbbbbbbbbbff.bbbbbbbbbbbbbbf.bbbbbb11111....", + "1bbbbbbf......1bbbbbbf1bbbbbf.1bbbbbbbbbbbbf.1bbbbbf........1bbbbbbbbbbbbf.....bbbbbbbbbbbbbff...1bbbbbbbbbbbbf..1bbbbbbbbbbbbbf.1bbbbbbbbbbb...", + "1bbbbbbf......1bbbbbbf1bbbbbf..bbbbbbbbbbbff.1bbbbbf.........bbbbbbbbbbbff......bbbbbbbbbbbff.....bbbbbbbbbbbff...bbbbbbbbbbbbbf..bbbbbbbbbbbf..", + ".bbbbbff.......bbbbbff.bbbbff...fbbbbbbbfff...bbbbff..........fbbbbbbbfff........fbbbbbbbfff.......fbbbbbbbfff.....fbbbbbbbbbbff...fbbbbbbbbff..", + "..fffff.........fffff...ffff......fffffff......ffff.............fffffff............fffffff...........fffffff.........ffffffffff......ffffffff..." + ], + "editorBackground": [ + "8888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888", + "8888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888", + "8888888888888888888888188888881888888888881888888888888888888888888888888888888888888888888888888888885888888888888888888881888888888888888888818888888888888188", + "8818888888881888888888888888818188888888888888888818888888881888888888818888888888881888888888588888888888888888888888888888888888888858888888888888888888888888", + "8888888888888888888888888888881888888888888888888181888888888888888888888888888888888888888888888881888881888888888188888888888888888888888888888888888888888888", + "8888588888888818888888888888888888888888888888888818888888888888888888888888888888888888888888888888888888888888881818888888888881888888818888888888818888888888", + "8888888888888888888858888888888888188888888888888888888888888888818888888888888188888888888888888888888888888888888188888888888888888888888888888888888888888888", + "8888888888888888188888888888888888888881888885888888888888888888888888885888888888888888881888888588888888888888888888888888888888888888888888888588888888888888", + "8888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888", + "8888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888", + "8886888688868886888688868886888688868886888688868886888688868886888688868886888688868886888688868886888688868886888688868886888688868886888688868886888688868886", + "8686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686", + "6666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666", + "6666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666", + "6666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666", + "6666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666" + ], + "microbitLogo": [ + "............................", + "......5555555555555555......", + "....55555555555555555555....", + "...5554444444444444444555...", + "..5554.................555..", + "..554...................554.", + ".554....55........55.....554", + ".55....5555......5555....554", + ".55....55554.....55554...554", + ".55.....5544......5544...554", + "..55.....44........44...5544", + "..555..................5554.", + "...555................55544.", + "....5555555555555555555544..", + ".....45555555555555555444...", + ".......4444444444444444....." + ], + "microbit_logo_btn": [ + ". . . . . . . . . . . . . . . .", + ". . . . . . . . . . . . . . . .", + ". . . . . . . . . . . . . . . .", + ". . . . . . . . . . . . . . . .", + ". . . . f f f f f f f f . . . .", + ". . . f 1 1 1 1 1 1 1 1 f . . .", + ". . f 1 1 1 1 1 1 1 1 1 1 f . .", + ". . f 1 f f 1 1 1 1 f f 1 f . .", + ". . f 1 f f 1 1 1 1 f f 1 f . .", + ". . f 1 1 1 1 1 1 1 1 1 1 f . .", + ". . . f 1 1 1 1 1 1 1 1 f . . .", + ". . . . f f f f f f f f . . . .", + ". . . . . . . . . . . . . . . .", + ". . . . . . . . . . . . . . . .", + ". . . . . . . . . . . . . . . .", + ". . . . . . . . . . . . . . . ." + ], + "MISSING": [ + ". . . . . . . . . . . . . . . .", + ". . . . . . . . . . . . . . . .", + ". . . . . . . . . . . . . . . .", + ". . . 2 2 2 2 2 2 2 2 2 2 . . .", + ". . . 2 2 . . . . . . 2 2 . . .", + ". . . 2 . 2 . . . . 2 . 2 . . .", + ". . . 2 . . 2 . . 2 . . 2 . . .", + ". . . 2 . . . 2 2 . . . 2 . . .", + ". . . 2 . . . 2 2 . . . 2 . . .", + ". . . 2 . . 2 . . 2 . . 2 . . .", + ". . . 2 . 2 . . . . 2 . 2 . . .", + ". . . 2 2 . . . . . . 2 2 . . .", + ". . . 2 2 2 2 2 2 2 2 2 2 . . .", + ". . . . . . . . . . . . . . . .", + ". . . . . . . . . . . . . . . .", + ". . . . . . . . . . . . . . . ." + ], + "tile_button_a": [ + ". . . . . . . . . . . . . . . .", + ". . . . . . . . . . . . . . . .", + ". . . . . . . . . . . . 8 . . .", + ". . . . . . . . . . . 8 8 d . .", + ". . . . . . . . . . 8 8 8 d . .", + ". . . . . . . . . 8 8 8 8 d . .", + ". . . . . . . . 8 8 8 8 8 d . .", + ". . . . . . . 8 8 8 1 8 8 d . .", + ". . . . . . 8 8 8 1 8 1 8 d . .", + ". . . . . 8 8 8 8 1 1 1 8 d . .", + ". . . . 8 8 8 8 8 1 8 1 8 d . .", + ". . . 8 8 8 8 8 8 1 8 1 8 d . .", + ". . 8 8 8 8 8 8 8 8 8 8 8 d . .", + ". . . d d d d d d d d d d d . .", + ". . . . . . . . . . . . . . . .", + ". . . . . . . . . . . . . . . ." + ], + "tile_button_b": [ + ". . . . . . . . . . . . . . . .", + ". . . . . . . . . . . . . . . .", + ". . 8 8 8 8 8 8 8 8 8 8 8 . . .", + ". . 8 1 1 8 8 8 8 8 8 8 d d . .", + ". . 8 1 8 1 8 8 8 8 8 d d . . .", + ". . 8 1 1 8 8 8 8 8 d d . . . .", + ". . 8 1 8 1 8 8 8 d d . . . . .", + ". . 8 1 1 8 8 8 d d . . . . . .", + ". . 8 8 8 8 8 d d . . . . . . .", + ". . 8 8 8 8 d d . . . . . . . .", + ". . 8 8 8 d d . . . . . . . . .", + ". . 8 8 d d . . . . . . . . . .", + ". . 8 d d . . . . . . . . . . .", + ". . . d . . . . . . . . . . . .", + ". . . . . . . . . . . . . . . .", + ". . . . . . . . . . . . . . . ." + ], + "finger_press": [ + "1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1", + "1 1 1 1 1 1 1 f 1 1 1 1 1 1 1 1", + "1 1 1 1 1 1 1 f 1 1 1 1 1 1 1 1", + "1 1 1 1 1 1 1 f 1 1 1 1 1 1 1 1", + "1 1 1 1 1 f 1 f 1 f 1 1 1 1 1 1", + "1 1 1 1 1 1 f f f 1 1 1 1 1 1 1", + "1 1 1 1 1 1 1 f 1 1 1 1 1 1 1 1", + "1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1", + "1 1 1 1 1 4 4 4 4 4 1 1 1 1 1 1", + "1 1 1 1 4 4 4 4 4 4 4 d 1 1 1 1", + "1 1 1 e 4 4 4 4 4 4 4 e d 1 1 1", + "1 1 1 e 2 4 4 4 4 4 2 e d 1 1 1", + "1 1 1 e e 2 2 2 2 2 e e d 1 1 1", + "1 1 1 1 e e e e e e e d 1 1 1 1", + "1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1", + "1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1" + ], + "magnet": [ + "1 1 1 1 1 1 1 1 1 1 1 1 6 1 1 1", + "1 1 1 1 1 1 1 1 1 1 6 1 1 1 6 1", + "1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1", + "1 1 1 8 8 8 8 8 f f 1 1 6 1 1 1", + "1 1 8 8 8 8 8 8 f f 1 1 1 1 1 6", + "1 8 8 8 b b b b b b 1 1 6 1 1 1", + "1 8 8 b 1 1 1 1 1 1 1 1 1 1 6 1", + "1 8 8 1 1 1 1 1 1 1 1 6 1 1 1 1", + "1 2 2 1 1 1 1 1 1 1 1 1 1 6 1 1", + "1 2 2 1 1 1 1 1 1 1 1 6 1 1 1 1", + "1 2 2 2 1 1 1 1 1 1 1 1 1 1 6 1", + "1 b 2 2 2 2 2 2 f f 1 1 6 1 1 1", + "1 1 b 2 2 2 2 2 f f 1 1 1 1 1 1", + "1 1 1 b b b b b b b 1 1 6 1 1 1", + "1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1", + "1 1 1 1 1 1 1 1 1 1 6 1 1 1 1 1" + ], + "thermometer": [ + "1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1", + "1 1 1 1 1 1 1 f 1 1 1 1 1 1 1 1", + "1 1 1 1 1 1 f d f 1 1 1 1 1 1 1", + "1 1 1 1 1 1 f d f 1 1 1 1 1 1 1", + "1 1 1 1 1 1 f d f 1 1 1 1 1 1 1", + "1 1 1 1 1 1 f d f 1 1 1 1 1 1 1", + "1 1 1 1 1 1 f 2 f 1 1 1 1 1 1 1", + "1 1 1 1 1 1 f 2 f 1 1 1 1 1 1 1", + "1 1 1 1 1 1 f 2 f 1 1 1 1 1 1 1", + "1 1 1 1 1 1 f 2 f 1 1 1 1 1 1 1", + "1 1 1 1 1 f 2 2 2 f 1 1 1 1 1 1", + "1 1 1 1 f 2 2 2 2 2 f 1 1 1 1 1", + "1 1 1 1 f 2 2 2 2 2 f 1 1 1 1 1", + "1 1 1 1 1 f 2 2 2 f 1 1 1 1 1 1", + "1 1 1 1 1 1 f f f 1 1 1 1 1 1 1", + "1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1" + ], + "led_light_sensor": [ + "1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1", + "1 1 8 8 8 8 5 5 5 8 8 8 8 1 1 1", + "1 1 8 8 8 5 4 4 4 5 8 8 8 1 1 1", + "1 1 8 8 8 5 4 4 4 5 8 8 8 1 1 1", + "1 1 8 8 8 5 4 4 4 5 8 8 8 1 1 1", + "1 1 8 8 8 8 5 5 5 8 8 8 8 1 1 1", + "1 1 8 8 5 8 8 8 8 8 5 8 8 1 1 1", + "1 1 8 5 8 8 8 5 8 8 8 5 8 1 1 1", + "1 1 8 8 8 5 8 8 8 5 8 8 8 1 1 1", + "1 1 8 8 5 8 8 5 8 8 5 8 8 1 1 1", + "1 1 8 5 8 8 8 8 8 8 8 5 8 1 1 1", + "1 1 8 8 8 8 8 5 8 8 8 8 8 1 1 1", + "1 1 8 8 8 8 8 8 8 8 8 8 8 1 1 1", + "1 1 8 8 8 2 2 2 2 2 8 8 8 1 1 1", + "1 1 8 f f f f f f f f f 8 1 1 1", + "1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1" + ], + "microphone": [ + "1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1", + "1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1", + "1 1 1 1 1 1 b c 1 1 1 1 1 1 1 1", + "1 1 1 1 1 1 b c c c 1 1 1 1 1 1", + "1 1 1 1 1 1 b c c c 1 1 1 1 1 1", + "1 1 1 1 1 1 b c c c 1 1 1 1 1 1", + "1 1 1 1 1 1 b c c c 1 1 1 1 1 1", + "1 1 1 1 f 1 c c c c 1 f 1 1 1 1", + "1 1 1 1 f 1 c c c c 1 f 1 1 1 1", + "1 1 1 1 f 1 1 c c 1 1 f 1 1 1 1", + "1 1 1 1 1 f 1 1 1 1 f 1 1 1 1 1", + "1 1 1 1 1 1 f f f f 1 1 1 1 1 1", + "1 1 1 1 1 1 1 f f 1 1 1 1 1 1 1", + "1 1 1 1 1 1 1 f f 1 1 1 1 1 1 1", + "1 1 1 1 1 f f f f f f 1 1 1 1 1", + "1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1" + ], + "accelerometer": [ + "1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1", + "1 1 1 1 1 1 1 1 8 1 1 1 1 1 1 1", + "1 1 1 1 1 1 1 8 8 8 1 1 1 1 1 1", + "1 1 1 1 1 1 8 8 8 8 8 1 1 1 1 1", + "1 1 1 1 1 1 6 6 8 6 6 1 1 1 1 1", + "1 1 1 1 1 1 1 1 8 1 1 1 1 1 1 1", + "1 1 8 6 1 1 f f f f f 1 1 1 1 1", + "1 8 8 6 1 f 1 1 1 1 1 f 1 1 1 1", + "8 8 8 8 8 f 1 f 1 f 1 f 1 1 1 1", + "1 8 8 6 1 f 1 1 1 1 1 f 1 1 1 1", + "1 1 8 6 1 1 f f f f f 8 1 1 6 1", + "1 1 1 1 1 1 1 1 1 1 1 1 8 6 8 1", + "1 1 1 1 1 1 1 1 1 1 1 1 6 8 8 1", + "1 1 1 1 1 1 1 1 1 1 1 6 8 8 8 1", + "1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1", + "1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1" + ], + "largeEditIcon": [ + ".666666666666666666666666666666.", + "66666666666666666666666666666666", + "66666666666666666666666666666666", + "666666666666666666666666ee666666", + "66666666666666666666666e44e66666", + "6666666666666666666666ee442e6666", + "666666666666666666666e15e222e666", + "66666666666666666666e155ee2ee666", + "6666666666666666666e155e44eee666", + "666666666666666666e155e44eee6666", + "ccccccccccccccccce155e44eeeccccc", + "bbbbbbbbbbbbbbbbe155e44eeebbbbbb", + "bbbbbbbbbbbbbbbe155e44eeebbbbbbb", + "111111bbb11111e155e44eeebcbcbcbb", + "1111111b11111e155e44eeebbbbbbbcb", + "1111111b1111ede5e44eeebbbbbbbbbb", + "1111111b1111edde44eeebbbbbbbbbcb", + "1111111b1111edddeeeebbbbb1bbbbbb", + "1111111b1111eedddeebcbbb111bbbcb", + "1111111b1111eeeeee1bbbbbc1cbbbbb", + "1111111b11111111111bcbbbbcbbbbcb", + "1111111b11111111111bbbbbbbbbbbbb", + "111111cbc111111111cbcbbbbbbbbbcb", + "ccccccbbbcccccccccbbbcbcbcbcbcbb", + "bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb", + "bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb", + "cccccccccccccccccccccccccccccccc", + "66666666666666666666666666666666", + "66666666666666666666666666666666", + "66666666666666666666666666666666", + "66666666666666666666666666666666", + "b666666666666666666666666666666b", + ".bbbbbbbbbbbbbbbbbbbbbbbbbbbbbb." + ], + "largeSettingsGear": [ + "66666666666666666666666666666666", + "66666666666666666666666666666666", + "666666666666666dd666666666666666", + "66666666666666dddd66666666666666", + "66666dddd666ddbbbbcc666dddd66666", + "66666dddd666ddbbbbcc666dddd66666", + "666dddbbbb66ddbbbbcc66dbbbccc666", + "666dddbbbbccddbbbbccdddbbbccc666", + "6666ddbbbbbbbbbbbbbbbbbbbbcc6666", + "66666dbbbbbbbbbbbbbbbbbbbbc66666", + "666666ccbbddbbccccbbddbbcc666666", + "666666ccbbddbbc66cbbddbbcc666666", + "66666dddbbbbcc6666ccbbbbdddd6666", + "6666ddddbbbbc666666cbbbbdddd6666", + "666dbbbbbbcc66666666ccbbbbbbc666", + "6dddbbbbbbc6666666666cbbbbbbccc6", + "6dddbbbbbbc6666666666cbbbbbbccc6", + "6dddbbbbbbcc66666666ccbbbbbbccc6", + "666cccccbbbbc6666666cbbbbcccc666", + "6666ccccbbbbcc66666ccbbbbccc6666", + "666666ddbbddbbc66cbbddbbcc666666", + "666666ddbbddbbccccbbddbbcc666666", + "66666dbbbbbbbbbbbbbbbbbbbbc66666", + "6666ddbbbbbbbbbbbbbbbbbbbbcc6666", + "6666ddbbbbccccbbbbccccbbbbcc6666", + "6666ddbbbb66ccbbbbcc66bbbbcc6666", + "66666cccc666ccbbbbcc666cccc66666", + "66666cccc666ccbbbbcc666cccc66666", + "66666666666666cccc66666666666666", + "666666666666666cc666666666666666", + "66666666666666666666666666666666", + "66666666666666666666666666666666" + ], + "iconEditor": [ + "f f f f f f f f f f f f f f f f", + "f f f f f f f f f f f f f f f f", + "f f f f f f f f f f f f f f f f", + "f f f f e e f f f f e e f f f f", + "f f f e 2 2 e f f e 2 2 e f f f", + "f f f e 2 2 e f f e 2 2 e f f f", + "f f f f e e f f f f e e f f f f", + "f f f f f f f f f f f f f f f f", + "f f f f f f f f f f f f f f f f", + "f e e f f f f f f f f f f e e f", + "e 2 2 e f f f f f f f f e 2 2 e", + "e 2 2 e f f f f f f f f e 2 2 e", + "f e e f e e f e e f e e f e e f", + "f f f e 2 2 e 2 2 e 2 2 e f f f", + "f f f e 2 2 e 2 2 e 2 2 e f f f", + "f f f f e e f e e f e e f f f f" + ], + "melodyEditor": [ + "1111111111111111", + "111111111ff11111", + "11111111fcc11111", + "11111111fcc11111", + "1111111111111111", + "1111111111111111", + "1111111111111111", + "11111ff111111111", + "1111fcc111111111", + "1111fcc111111111", + "1111111111111111", + "1111111111111111", + "1111111111111111", + "1ff1111111111ff1", + "fcc111111111fcc1", + "fcc111111111fcc1" + ], + "disk": [ + ". . . . . . . . . . . . . . . .", + ". . 8 d d d d 8 8 d d 8 . . . .", + ". . 8 d d d d 8 8 d d 8 8 . . .", + ". . 8 d d d d 8 8 d d 8 8 8 . .", + ". . 8 d d d d d d d d 8 8 8 . .", + ". . 8 8 8 8 8 8 8 8 8 8 8 8 . .", + ". . 8 8 3 3 3 3 3 3 3 3 8 8 d .", + ". . 8 8 1 1 1 1 1 1 1 1 8 8 d .", + ". . 8 8 1 1 1 1 1 1 1 1 8 8 d .", + ". . 8 8 1 1 1 1 1 1 1 1 8 8 d .", + ". . 8 8 1 1 1 1 1 1 1 1 8 8 d .", + ". . 8 8 1 1 1 1 1 1 1 1 8 8 d .", + ". . 8 8 1 1 1 1 1 1 1 1 8 8 d .", + ". . 8 8 1 1 1 1 1 1 1 1 8 8 . .", + ". . . . . . . . . . . . . . . .", + ". . . . . . . . . . . . . . . ." + ], + "disk1": [ + ". . . . . . . . . . . . . . . .", + ". . 8 d d d d 8 8 d d 8 . . . .", + ". . 8 d d d d 8 8 d d 8 8 . . .", + ". . 8 d d d d 8 8 d d 8 8 8 . .", + ". . 8 d d d d d d d d 8 8 8 . .", + ". . 8 8 8 8 8 8 8 8 8 8 8 8 d .", + ". . 8 8 3 3 3 3 3 3 3 3 8 8 d .", + ". . 8 8 1 1 1 1 1 1 1 1 8 8 d .", + ". . 8 8 1 1 1 1 f 1 1 1 8 8 d .", + ". . 8 8 1 1 1 f f 1 1 1 8 8 d .", + ". . 8 8 1 1 1 1 f 1 1 1 8 8 d .", + ". . 8 8 1 1 1 1 f 1 1 1 8 8 d .", + ". . 8 8 1 1 1 f f f 1 1 8 8 d .", + ". . 8 8 1 1 1 1 1 1 1 1 8 8 . .", + ". . . . . . . . . . . . . . . .", + ". . . . . . . . . . . . . . . ." + ], + "disk2": [ + ". . . . . . . . . . . . . . . .", + ". . 8 d d d d 8 8 d d 8 . . . .", + ". . 8 d d d d 8 8 d d 8 8 . . .", + ". . 8 d d d d 8 8 d d 8 8 8 . .", + ". . 8 d d d d d d d d 8 8 8 . .", + ". . 8 8 8 8 8 8 8 8 8 8 8 8 d .", + ". . 8 8 3 3 3 3 3 3 3 3 8 8 d .", + ". . 8 8 1 1 1 1 1 1 1 1 8 8 d .", + ". . 8 8 1 1 1 f f 1 1 1 8 8 d .", + ". . 8 8 1 1 1 1 1 f 1 1 8 8 d .", + ". . 8 8 1 1 1 1 f 1 1 1 8 8 d .", + ". . 8 8 1 1 1 f 1 1 1 1 8 8 d .", + ". . 8 8 1 1 1 f f f 1 1 8 8 d .", + ". . 8 8 1 1 1 1 1 1 1 1 8 8 . .", + ". . . . . . . . . . . . . . . .", + ". . . . . . . . . . . . . . . ." + ], + "disk3": [ + ". . . . . . . . . . . . . . . .", + ". . 8 d d d d 8 8 d d 8 . . . .", + ". . 8 d d d d 8 8 d d 8 8 . . .", + ". . 8 d d d d 8 8 d d 8 8 8 . .", + ". . 8 d d d d d d d d 8 8 8 . .", + ". . 8 8 8 8 8 8 8 8 8 8 8 8 d .", + ". . 8 8 3 3 3 3 3 3 3 3 8 8 d .", + ". . 8 8 1 1 1 1 1 1 1 1 8 8 d .", + ". . 8 8 1 1 1 f f 1 1 1 8 8 d .", + ". . 8 8 1 1 1 1 1 f 1 1 8 8 d .", + ". . 8 8 1 1 1 1 f f 1 1 8 8 d .", + ". . 8 8 1 1 1 1 1 f 1 1 8 8 d .", + ". . 8 8 1 1 1 f f 1 1 1 8 8 d .", + ". . 8 8 1 1 1 1 1 1 1 1 8 8 . .", + ". . . . . . . . . . . . . . . .", + ". . . . . . . . . . . . . . . ." + ], + "largeDiskIcon": [ + ".666666666666666666666666666666.", + "66666666666666666666666666666666", + "66666666666666666666666666666666", + "66666bbbbbbbbbbbbbbbbbbbb6666666", + "6666bb8cdddddddddddd888c8b666666", + "6666b88cdddddddc88dd888c88b66666", + "6666b88cddddddd888dd888c888b6666", + "6666b88cddddddd888dd888c888b6666", + "6666b88cddddddd888dd888c888b6666", + "6666b88cddddddd888dd888c888b6666", + "6666b88cdddddddddddd888c888b6666", + "6666b88ccccccccccccccccc888b6666", + "6666b8888888888888888888888b6666", + "6666b8888888888888888888888b6666", + "6666b8833333333333333333888b6666", + "6666b8833333333333333333888b6666", + "6666b8811111111111111111888b6666", + "6666b8811111111111111111888b6666", + "6666b8811ccccc1111111111888b6666", + "6666b8811111111111111111888b6666", + "6666b8811ccc111111111111888b6666", + "6666b8811111111111111111888b6666", + "6666b8811ccccccc11111111888b6666", + "6666b8811111111111111111888b6666", + "6666b8811111111111111111888b6666", + "6666b88111111111111111118f8b6666", + "6666b88111111111111111118f8b6666", + "6666bb811111111111111111888b6666", + "66666bbbbbbbbbbbbbbbbbbbbbbb6666", + "66666666666666666666666666666666", + "66666666666666666666666666666666", + "b666666666666666666666666666666b", + ".bbbbbbbbbbbbbbbbbbbbbbbbbbbbbb." + ], + "solid_red": [ + ". . . . . . . . . . . . . . . .", + ". . . 2 2 2 2 2 2 2 2 2 2 . . .", + ". . 2 2 4 4 4 4 4 4 4 4 2 2 . .", + ". . 2 4 4 4 4 4 4 4 4 4 4 2 . .", + ". . 2 4 4 4 4 4 4 4 4 4 4 2 . .", + ". . 2 4 4 4 4 4 4 4 4 4 4 2 . .", + ". . 2 4 4 4 4 4 4 4 4 4 4 2 . .", + ". . 2 4 4 4 4 4 4 4 4 4 4 2 . .", + ". . 2 4 4 4 4 4 4 4 4 4 4 2 . .", + ". . 2 4 4 4 4 4 4 4 4 4 4 2 . .", + ". . 2 4 4 4 4 4 4 4 4 4 4 2 . .", + ". . 2 4 4 4 4 4 4 4 4 4 4 2 . .", + ". . 2 4 4 4 4 4 4 4 4 4 4 2 . .", + ". . 2 2 4 4 4 4 4 4 4 4 2 2 . .", + ". . . 2 2 2 2 2 2 2 2 2 2 . . .", + ". . . . . . . . . . . . . . . ." + ], + "led_off": [ + ". . . . . . . . . . . . . . . .", + ". . . c c c c c c c c c c . . .", + ". . c c c c c c c c c c c c . .", + ". . c c c c c c c c c c c c . .", + ". . c c c c c c c c c c c c . .", + ". . c c c c c c c c c c c c . .", + ". . c c c c c c c c c c c c . .", + ". . c c c c c c c c c c c c . .", + ". . c c c c c c c c c c c c . .", + ". . c c c c c c c c c c c c . .", + ". . c c c c c c c c c c c c . .", + ". . c c c c c c c c c c c c . .", + ". . c c c c c c c c c c c c . .", + ". . c c c c c c c c c c c c . .", + ". . . c c c c c c c c c c . . .", + ". . . . . . . . . . . . . . . ." + ], + "arm_open": [ + ". . . . . . . . . . c c c . . .", + ". . . . . . . . c c b b b c c .", + ". . . . . . . c b b b b b b b c", + ". . . . . . c b b b b c c b b c", + "c c . . c b b b b c c . . c b c", + "b b c c b b b b c . . . . . c .", + "b b b b b b c c . . . . . . . .", + "c f f b b c . . . . . . . . . .", + "c f f b b c . . . . . . . . . .", + "b b b b b b c c . . . . . . . .", + "b b c c b b b b c . . . . . c .", + "c c . . c b b b b c c . . c b c", + ". . . . . c c b b b b c c b b c", + ". . . . . . . c b b b b b b b c", + ". . . . . . . . c c b b b c c .", + ". . . . . . . . . . c c c . . ." + ], + "arm_close": [ + ". . . . . . . . . . . . . . . .", + ". . . . . . . . . . . . . . . .", + ". . . . . c c c c c c c c c . .", + ". . . . . c b b b b b b b b c .", + ". . . . c b b b b b b b b b b c", + "c c d d b b c c c c c c c c b c", + "b b b b b b c . . . . . . . c .", + "c f f b b c . . . . . . . . . .", + "c f f b b c . . . . . . . . . .", + "b b b b b b c . . . . . . . c .", + "c c d d b b c c c c c c c c b c", + ". . . . c b b b b b b b b b b c", + ". . . . . c b b b b b b b b c .", + ". . . . . c c c c c c c c c . .", + ". . . . . . . . . . . . . . . .", + ". . . . . . . . . . . . . . . ." + ], + "btn_stop": [ + ". . . . . . . . . . . . . . . .", + ". . . . . . . . . . . . . . . .", + ". . . . . . . . . . . . . . . .", + ". . . . . . . . . . . . . . . .", + ". . . . f f f f f f f f . . . .", + ". . . . f 2 2 2 2 2 2 f . . . .", + ". . . . f 2 2 2 2 2 2 f . . . .", + ". . . . f 2 2 2 2 2 2 f . . . .", + ". . . . f 2 2 2 2 2 2 f . . . .", + ". . . . f 2 2 2 2 2 2 f . . . .", + ". . . . f 2 2 2 2 2 2 f . . . .", + ". . . . f f f f f f f f . . . .", + ". . . . . . . . . . . . . . . .", + ". . . . . . . . . . . . . . . .", + ". . . . . . . . . . . . . . . .", + ". . . . . . . . . . . . . . . ." + ], + "btn_delete": [ + ". . . . . . . . . . . . . . . .", + ". . . . . . . . . . . . . . . .", + ". . . . . . c f f . . . . . . .", + ". . . . . c . . . f . . . . . .", + ". . . . c c c f f f f . . . . .", + ". . . c 1 1 d d d b b f . . . .", + ". . c c c c c f f f f f f . . .", + ". . . c b c b c b c c f . . . .", + ". . . c 1 c d c d c b f d . . .", + ". . . c 1 c d c d c b f d . . .", + ". . . c 1 c d c d c b f d . . .", + ". . . c 1 1 d d d b b f d . . .", + ". . . c 1 1 d d d b b f d . . .", + ". . . . c c c f f f f d . . . .", + ". . . . . . . . . . . . . . . .", + ". . . . . . . . . . . . . . . ." + ], + "btn_plus": [ + ". . . . . . . . . . . . . . . .", + ". . . . . . . . . . . . . . . .", + ". . . . . . . . . . . . . . . .", + ". . . . . . f f f f . . . . . .", + ". . . . . . f 5 5 f . . . . . .", + ". . . . . . f 5 5 f . . . . . .", + ". . . f f f f 5 5 f f f f . . .", + ". . . f 5 5 5 5 5 5 5 5 f . . .", + ". . . f 5 5 5 5 5 5 5 5 f . . .", + ". . . f f f f 5 5 f f f f . . .", + ". . . . . . f 5 5 f . . . . . .", + ". . . . . . f 5 5 f . . . . . .", + ". . . . . . f f f f . . . . . .", + ". . . . . . . . . . . . . . . .", + ". . . . . . . . . . . . . . . .", + ". . . . . . . . . . . . . . . ." + ], + "arith_plus": [ + ". . . . . . . .", + ". . . f f . . .", + ". . . f f . . .", + ". f f f f f f .", + ". f f f f f f .", + ". . . f f . . .", + ". . . f f . . .", + ". . . . . . . ." + ], + "arith_equals": [ + ". . . . . . . .", + ". f f f f f f .", + ". f f f f f f .", + ". . . . . . . .", + ". . . . . . . .", + ". f f f f f f .", + ". f f f f f f .", + ". . . . . . . ." + ], + "loop": [ + "4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4", + "4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4", + "4 4 4 f f f f 4 4 4 4 4 4 4 4 4", + "4 4 4 c c c c f 4 4 4 4 4 4 4 4", + "4 4 4 1 1 1 1 1 f 4 4 4 4 4 4 4", + "4 4 4 4 4 4 c 1 1 4 1 4 4 4 1 4", + "4 4 4 4 4 4 4 c 1 4 4 1 4 1 4 4", + "4 4 4 4 f 4 4 c 1 4 4 4 1 4 4 4", + "4 4 4 f c 4 f c 1 4 4 1 4 1 4 4", + "4 4 f c 1 f c 1 1 4 1 4 4 4 1 4", + "4 4 c 1 1 c 1 1 4 4 4 4 4 4 4 4", + "4 4 1 1 1 1 1 4 4 4 4 4 4 4 4 4", + "4 4 4 1 1 4 4 4 4 4 4 4 4 4 4 4", + "4 4 4 4 1 4 4 4 4 4 4 4 4 4 4 4", + "4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4", + ". . . . . . . . . . . . . . . ." + ], + "btn_when_insertion_point": [ + "dddddddddddddddddd", + "dcddcddcddcddcddcd", + "dddddddddddddddddd", + "dddddddddddddddddd", + "dcddddddddddddddcd", + "dddddddddddddddddd", + "dddddddddddddddddd", + "dcddddddddddddddcd", + "dddddddddddddddddd", + "dddddddddddddddddd", + "dcddddddddddddddcd", + "dddddddddddddddddd", + "dddddddddddddddddd", + "dcddddddddddddddcd", + "dddddddddddddddddd", + "dddddddddddddddddd", + "dcddcddcddcddcddcd", + "dddddddddddddddddd" + ], + "btn_do_insertion_point": [ + "bbbbbbbbbbbbbbbbbb", + "bdbbdbbdbbdbbdbbdb", + "bbbbbbbbbbbbbbbbbb", + "bbbbbbbbbbbbbbbbbb", + "bdbbbbbbbbbbbbbbdb", + "bbbbbbbbbbbbbbbbbb", + "bbbbbbbbbbbbbbbbbb", + "bdbbbbbbbbbbbbbbdb", + "bbbbbbbbbbbbbbbbbb", + "bbbbbbbbbbbbbbbbbb", + "bdbbbbbbbbbbbbbbdb", + "bbbbbbbbbbbbbbbbbb", + "bbbbbbbbbbbbbbbbbb", + "bdbbbbbbbbbbbbbbdb", + "bbbbbbbbbbbbbbbbbb", + "bbbbbbbbbbbbbbbbbb", + "bdbbdbbdbbdbbdbbdb", + "bbbbbbbbbbbbbbbbbb" + ], + "rule_arrow": [ + "d d d . . . . . . . . . . .", + "d d d d . . . . . . . . . .", + "d d d d d . . . . . . . . .", + "d d d d d d . . . . . . . .", + "d d d d d d d . . . . . . .", + "d d d d d d d d . . . . . .", + "d d d d d d d d d . . . . .", + "d d d d d d d d d d . . . .", + "d d d d d d d d d d d . . .", + "d d d d d d d d d d d d . .", + "d d d d d d d d d d d d . .", + "d d d d d d d d d d d . . .", + "d d d d d d d d d d . . . .", + "d d d d d d d d d . . . . .", + "d d d d d d d d . . . . . .", + "d d d d d d d . . . . . . .", + "d d d d d d . . . . . . . .", + "d d d d d . . . . . . . . .", + "d d d d . . . . . . . . . .", + "d d d . . . . . . . . . . ." + ], + "showScreen": [ + ". . . . . . . . . . . . . . . .", + ". . . . . . . . . . . . 2 4 . .", + ". . . . 2 . . . . . . 2 4 4 2 .", + ". . . . 2 . . . . . 2 4 4 2 e .", + ". 2 . . 2 . . . . 2 4 4 2 e b .", + ". . 2 . 2 . . . 2 4 4 2 e b . .", + ". . . . . . . d 4 4 2 e b . . .", + ". . f f f f f d d 2 e b . . . .", + ". . f f f f f 2 d d b . . . . .", + ". . f f 2 f 2 f f b . . . . . .", + ". . f f f f f f f b . 2 2 2 2 .", + ". . f 2 f f f 2 f b . . . . . .", + ". . f f 2 2 2 f f b . 2 . . . .", + ". . f f f f f f f b . . 2 . . .", + ". . . b b b b b b b . . . . . .", + ". . . . . . . . . . . . . . . ." + ], + "showNumber": [ + ". . . . . . . . . . 4 4 4 4 4 4", + ". . . . . . . . . 4 5 5 5 5 5 5", + ". . . . 2 . . . 4 5 4 4 4 4 4 4", + ". . . . 2 . . . 4 5 4 . . . . .", + ". 2 . . 2 . . . 4 5 4 . . . . .", + ". . 2 . 2 . 4 5 5 5 5 5 4 . . .", + ". . . . . . . 4 5 5 5 4 . . . .", + ". . f f f f f f 4 5 4 . . . . .", + ". . f f f 2 2 f f b . . . . . .", + ". . f f 2 f 2 f f b . . . . . .", + ". . f 2 f f 2 f f b . 2 2 2 2 .", + ". . f 2 2 2 2 2 f b . . . . . .", + ". . f f f f 2 f f b . 2 . . . .", + ". . f f f f f f f b . . 2 . . .", + ". . . b b b b b b b . . . . . .", + ". . . . . . . . . . . . . . . ." + ], + "rule_handle": [ + ". f f f f f f f .", + "f 1 1 1 1 1 1 1 f", + "f 1 1 1 1 1 1 1 f", + "f 1 1 1 1 1 1 1 f", + "f 1 1 1 1 1 1 1 f", + "f 1 1 1 1 1 1 1 f", + "f 1 1 1 1 1 1 1 f", + "f 1 1 1 1 1 1 1 f", + ". f f f f f f f ." + ], + "tile_switch_page": [ + ". . . . . . . . . . . . . . . .", + ". . . . . . . . . . . . . . . .", + ". . . . . f f f f . . . . . . .", + ". . . . f f 9 9 f . . . . . . .", + ". . . f 9 f 9 9 f d f f f f . .", + ". . f f f f 9 9 f f f 7 7 f . .", + ". . f 9 9 9 9 9 f 7 f 7 7 f d .", + ". . f 9 9 9 9 f f f f 7 7 f d .", + ". . f 9 9 9 9 f 5 f 7 7 7 f d .", + ". . f 9 f f f f 5 5 f 7 7 f d .", + ". . f 9 f 5 5 5 5 5 5 f 7 f d .", + ". . f f f f f f 5 5 f 7 7 f d .", + ". . . d d d d f 5 f 7 7 7 f d .", + ". . . . . . . f f f f f f f d .", + ". . . . . . . . d d d d d d d .", + ". . . . . . . . . . . . . . . ." + ], + "tile_start_page": [ + ". . . . . . . . . . . . . . . .", + ". . . . . . . . . . . . . . . .", + ". . . . . . . . . . . . . . . .", + ". . . . . . . . . f f f f . . .", + ". . . . . . . . f f 7 7 f . . .", + ". . . . . . . f 7 f 7 7 f d . .", + ". . . . . . f f f f 7 7 f d . .", + ". . . . . . f 5 f 7 7 7 f d . .", + ". . . f f f f 5 5 f 7 7 f d . .", + ". . . f 5 5 5 5 5 5 f 7 f d . .", + ". . . f f f f 5 5 f 7 7 f d . .", + ". . . d d d f 5 f 7 7 7 f d . .", + ". . . . . . f f f f f f f d . .", + ". . . . . . . d d d d d d d . .", + ". . . . . . . . . . . . . . . .", + ". . . . . . . . . . . . . . . ." + ], + "tile_page_1": [ + ". . . . . . . . . . . . . . . .", + ". . . . . . . . . . . . . . . .", + ". . . . . . f f f f f f f . . .", + ". . . . . f f 9 9 9 9 9 f . . .", + ". . . . f 9 f 9 9 9 9 9 f . . .", + ". . . f f f f 9 9 9 9 9 f . . .", + ". . . f 9 9 9 9 9 9 9 9 f . . .", + ". . . f 9 9 9 f f 9 9 9 f . . .", + ". . . f 9 9 9 9 f 9 9 9 f . . .", + ". . . f 9 9 9 9 f 9 9 9 f . . .", + ". . . f 9 9 9 9 f 9 9 9 f . . .", + ". . . f 9 9 9 f f f 9 9 f . . .", + ". . . f 9 9 9 9 9 9 9 9 f . . .", + ". . . f f f f f f f f f f . . .", + ". . . . . . . . . . . . . . . .", + ". . . . . . . . . . . . . . . ." + ], + "tile_page_2": [ + ". . . . . . . . . . . . . . . .", + ". . . . . . . . . . . . . . . .", + ". . . . . . f f f f f f f . . .", + ". . . . . f f 5 5 5 5 5 f . . .", + ". . . . f 5 f 5 5 5 5 5 f . . .", + ". . . f f f f 5 5 5 5 5 f . . .", + ". . . f 5 5 5 5 5 5 5 5 f . . .", + ". . . f 5 5 5 f f 5 5 5 f . . .", + ". . . f 5 5 f 5 5 f 5 5 f . . .", + ". . . f 5 5 5 5 f 5 5 5 f . . .", + ". . . f 5 5 5 f 5 5 5 5 f . . .", + ". . . f 5 5 f f f f 5 5 f . . .", + ". . . f 5 5 5 5 5 5 5 5 f . . .", + ". . . f f f f f f f f f f . . .", + ". . . . . . . . . . . . . . . .", + ". . . . . . . . . . . . . . . ." + ], + "tile_page_3": [ + ". . . . . . . . . . . . . . . .", + ". . . . . . . . . . . . . . . .", + ". . . . . . f f f f f f f . . .", + ". . . . . f f 4 4 4 4 4 f . . .", + ". . . . f 4 f 4 4 4 4 4 f . . .", + ". . . f f f f 4 4 4 4 4 f . . .", + ". . . f 4 4 4 4 4 4 4 4 f . . .", + ". . . f 4 4 4 f f 4 4 4 f . . .", + ". . . f 4 4 4 4 4 f 4 4 f . . .", + ". . . f 4 4 4 4 f 4 4 4 f . . .", + ". . . f 4 4 4 4 4 f 4 4 f . . .", + ". . . f 4 4 4 f f 4 4 4 f . . .", + ". . . f 4 4 4 4 4 4 4 4 f . . .", + ". . . f f f f f f f f f f . . .", + ". . . . . . . . . . . . . . . .", + ". . . . . . . . . . . . . . . ." + ], + "tile_page_4": [ + ". . . . . . . . . . . . . . . .", + ". . . . . . . . . . . . . . . .", + ". . . . . . f f f f f f f . . .", + ". . . . . f f 3 3 3 3 3 f . . .", + ". . . . f 3 f 3 3 3 3 3 f . . .", + ". . . f f f f 3 3 3 3 3 f . . .", + ". . . f 3 3 3 3 3 3 3 3 f . . .", + ". . . f 3 3 f 3 f 3 3 3 f . . .", + ". . . f 3 3 f 3 f 3 3 3 f . . .", + ". . . f 3 3 f f f f 3 3 f . . .", + ". . . f 3 3 3 3 f 3 3 3 f . . .", + ". . . f 3 3 3 3 f 3 3 3 f . . .", + ". . . f 3 3 3 3 3 3 3 3 f . . .", + ". . . f f f f f f f f f f . . .", + ". . . . . . . . . . . . . . . .", + ". . . . . . . . . . . . . . . ." + ], + "tile_page_5": [ + ". . . . . . . . . . . . . . . .", + ". . . . . . . . . . . . . . . .", + ". . . . . . f f f f f f f . . .", + ". . . . . f f 7 7 7 7 7 f . . .", + ". . . . f 7 f 7 7 7 7 7 f . . .", + ". . . f f f f 7 7 7 7 7 f . . .", + ". . . f 7 7 7 7 7 7 7 7 f . . .", + ". . . f 7 7 f f f f 7 7 f . . .", + ". . . f 7 7 f 7 7 7 7 7 f . . .", + ". . . f 7 7 f f f 7 7 7 f . . .", + ". . . f 7 7 7 7 7 f 7 7 f . . .", + ". . . f 7 7 f f f 7 7 7 f . . .", + ". . . f 7 7 7 7 7 7 7 7 f . . .", + ". . . f f f f f f f f f f . . .", + ". . . . . . . . . . . . . . . .", + ". . . . . . . . . . . . . . . ." + ], + "tile_timer": [ + ". . . . . . . . . . . . . . . .", + ". . . . . . . . . . . . . . . .", + ". . . . . . . f . . . . . . . .", + ". . . . . b b b b b . . . . . .", + ". . . . b 1 1 9 9 9 b . . . . .", + ". . . b 1 1 1 b 9 9 9 c . . . .", + ". . b 1 1 d 1 b 9 b 9 9 c . . .", + ". . b 1 1 1 1 9 9 9 9 9 c d . .", + ". . b 1 d d 1 2 2 2 2 9 c d . .", + ". . b 1 1 1 1 1 1 1 1 1 c d . .", + ". . b 1 1 d 1 d 1 d 1 1 c d . .", + ". . . b 1 1 1 d 1 1 1 c d . . .", + ". . . . c 1 1 1 1 1 c d . . . .", + ". . . . . c c c c c d . . . . .", + ". . . . . . . . . . . . . . . .", + ". . . . . . . . . . . . . . . ." + ], + "tile_timespan_short": [ + ". . . . . . . . . . . . . . . .", + ". . . . . . . . . . . . . . . .", + ". . . b b b b b b b b b b . . .", + ". . b 1 1 1 1 1 1 1 1 1 1 c . .", + ". . b 1 1 2 1 1 1 1 1 1 1 c . .", + ". . b 1 1 2 1 1 1 1 1 1 1 c d .", + ". . b 1 1 1 1 1 1 1 1 1 1 c d .", + ". . b 1 2 2 2 1 1 1 f f 1 c d .", + ". . b 1 1 1 1 1 1 f 1 1 1 c d .", + ". . b 1 2 1 2 1 1 1 f 1 1 c d .", + ". . b 1 2 2 2 1 1 1 1 f 1 c d .", + ". . b 1 1 1 2 1 1 f f 1 1 c d .", + ". . b 1 1 1 1 1 1 1 1 1 1 c d .", + ". . . c c c c c c c c c c d . .", + ". . . . . . . . . . . . . . . .", + ". . . . . . . . . . . . . . . ." + ], + "tile_timespan_long": [ + ". . . . . . . . . . . . . . . .", + ". . . . . . . . . . . . . . . .", + ". . . b b b b b b b b b b . . .", + ". . b 1 1 1 1 1 1 1 1 1 1 c . .", + ". . b 1 1 1 1 1 1 1 1 1 1 c . .", + ". . b 1 1 1 2 1 1 1 1 1 1 c d .", + ". . b 1 1 2 2 1 1 1 1 1 1 c d .", + ". . b 1 1 1 2 1 1 1 f f 1 c d .", + ". . b 1 1 1 2 1 1 f 1 1 1 c d .", + ". . b 1 1 1 2 1 1 1 f 1 1 c d .", + ". . b 1 1 1 2 1 1 1 1 f 1 c d .", + ". . b 1 1 2 2 2 1 f f 1 1 c d .", + ". . b 1 1 1 1 1 1 1 1 1 1 c d .", + ". . . c c c c c c c c c c d . .", + ". . . . . . . . . . . . . . . .", + ". . . . . . . . . . . . . . . ." + ], + "tile_timespan_fiveSeconds": [ + ". . . . . . . . . . . . . . . .", + ". . . . . . . . . . . . . . . .", + ". . . b b b b b b b b b b . . .", + ". . b 1 1 1 1 1 1 1 1 1 1 c . .", + ". . b 1 1 1 1 1 1 1 1 1 1 c . .", + ". . b 1 2 2 2 2 1 1 1 1 1 c d .", + ". . b 1 2 1 1 1 1 1 1 1 1 c d .", + ". . b 1 2 2 2 1 1 1 f f 1 c d .", + ". . b 1 1 1 1 2 1 f 1 1 1 c d .", + ". . b 1 1 1 1 2 1 1 f 1 1 c d .", + ". . b 1 1 1 1 2 1 1 1 f 1 c d .", + ". . b 1 2 2 2 1 1 f f 1 1 c d .", + ". . b 1 1 1 1 1 1 1 1 1 1 c d .", + ". . . c c c c c c c c c c d . .", + ". . . . . . . . . . . . . . . .", + ". . . . . . . . . . . . . . . ." + ], + "tile_timespan_random": [ + ". . . . . . . . . . . . . . . .", + ". . . . . . . . . . . . . . . .", + ". . . b b b b b b b b b b . . .", + ". . b 1 1 1 1 1 1 1 1 1 1 c . .", + ". . b 1 1 1 1 1 1 1 1 1 1 c . .", + ". . b 1 1 2 2 1 1 1 1 1 1 c d .", + ". . b 1 2 1 1 2 1 1 1 1 1 c d .", + ". . b 1 1 1 1 2 1 1 f f 1 c d .", + ". . b 1 1 2 2 1 1 f 1 1 1 c d .", + ". . b 1 1 2 1 1 1 1 f 1 1 c d .", + ". . b 1 1 1 1 1 1 1 1 f 1 c d .", + ". . b 1 1 2 1 1 1 f f 1 1 c d .", + ". . b 1 1 1 1 1 1 1 1 1 1 c d .", + ". . . c c c c c c c c c c d . .", + ". . . . . . . . . . . . . . . .", + ". . . . . . . . . . . . . . . ." + ], + "tile_pin_0": [ + ". . 4 5 4 d . . . . 4 5 4 d . .", + ". . 4 5 4 d . . . . 4 5 4 d . .", + ". . 4 5 4 d . . . . 4 5 4 d . .", + ". . 4 5 5 4 4 4 4 4 5 5 4 d . .", + ". . 4 5 5 5 5 5 5 5 5 5 4 d . .", + ". . 4 5 5 5 5 5 5 5 5 5 4 d . .", + ". . 4 5 5 5 5 f 5 5 5 5 4 d . .", + ". . 4 5 5 5 f 5 f 5 5 5 4 d . .", + ". . 4 5 5 5 f 5 f 5 5 5 4 d . .", + ". . 4 5 5 5 f 5 f 5 5 5 4 d . .", + ". . 4 5 5 5 5 f 5 5 5 5 4 d . .", + ". . 4 5 5 5 5 5 5 5 5 5 4 d . .", + ". . 4 5 5 4 4 4 4 4 5 5 4 d . .", + ". . . 4 4 d . . . . 4 4 d . . .", + ". . . . . . . . . . . . . . . .", + ". . . . . . . . . . . . . . . ." + ], + "tile_pin_1": [ + ". . 4 5 4 d . . . . 4 5 4 d . .", + ". . 4 5 4 d . . . . 4 5 4 d . .", + ". . 4 5 4 d . . . . 4 5 4 d . .", + ". . 4 5 5 4 4 4 4 4 5 5 4 d . .", + ". . 4 5 5 5 5 5 5 5 5 5 4 d . .", + ". . 4 5 5 5 5 5 5 5 5 5 4 d . .", + ". . 4 5 5 5 5 f 5 5 5 5 4 d . .", + ". . 4 5 5 5 f f 5 5 5 5 4 d . .", + ". . 4 5 5 5 5 f 5 5 5 5 4 d . .", + ". . 4 5 5 5 5 f 5 5 5 5 4 d . .", + ". . 4 5 5 5 f f f 5 5 5 4 d . .", + ". . 4 5 5 5 5 5 5 5 5 5 4 d . .", + ". . 4 5 5 4 4 4 4 4 5 5 4 d . .", + ". . . 4 4 d . . . . 4 4 d . . .", + ". . . . . . . . . . . . . . . .", + ". . . . . . . . . . . . . . . ." + ], + "tile_pin_2": [ + ". . 4 5 4 d . . . . 4 5 4 d . .", + ". . 4 5 4 d . . . . 4 5 4 d . .", + ". . 4 5 4 d . . . . 4 5 4 d . .", + ". . 4 5 5 4 4 4 4 4 5 5 4 d . .", + ". . 4 5 5 5 5 5 5 5 5 5 4 d . .", + ". . 4 5 5 5 5 5 5 5 5 5 4 d . .", + ". . 4 5 5 5 f f 5 5 5 5 4 d . .", + ". . 4 5 5 5 5 5 f 5 5 5 4 d . .", + ". . 4 5 5 5 5 f 5 5 5 5 4 d . .", + ". . 4 5 5 5 f 5 5 5 5 5 4 d . .", + ". . 4 5 5 5 f f f 5 5 5 4 d . .", + ". . 4 5 5 5 5 5 5 5 5 5 4 d . .", + ". . 4 5 5 4 4 4 4 4 5 5 4 d . .", + ". . . 4 4 d . . . . 4 4 d . . .", + ". . . . . . . . . . . . . . . .", + ". . . . . . . . . . . . . . . ." + ], + "radio_value": [ + ". . . . . . . . . . . . . . . .", + ". . . . . 8 . . . 8 . . . . . .", + ". . . 8 . . 8 8 8 . . 8 . . . .", + ". 8 . . 8 . . . . . 8 . . 8 . .", + ". . 8 . . 8 8 8 8 8 . . 8 . . .", + ". . . 8 . . . . . . . 8 . . . .", + ". . . . 8 8 8 8 8 8 8 . . . . .", + ". . . . . . . . . . . . . . . .", + ". . . . . . . . . . . . . . . .", + ". . . . . . 4 4 4 . . . . . . .", + ". . . . . 4 5 1 5 4 . . . . . .", + ". . . . . 4 1 1 1 4 . . . . . .", + ". . . . . 4 5 1 5 4 . . . . . .", + ". . . . . . 4 4 4 . . . . . . .", + ". . . . . . . . . . . . . . . .", + ". . . . . . . . . . . . . . . ." + ], + "radio_receive": [ + ". . . . . . . . . . . . . . . .", + ". . . . . 8 . . . 8 . . . . . .", + ". . . 8 . . 8 8 8 . . 8 . . . .", + ". 8 . . 8 . . . . . 8 . . 8 . .", + ". . 8 . . 8 8 8 8 8 . . 8 . . .", + ". . . 8 . . . . . . . 8 . . . .", + ". . . . 8 8 8 8 8 8 8 . . . . .", + ". . . . . . . . . . . . . . . .", + ". . . . . . 4 5 4 . . . . . . .", + ". . . . . . 4 5 4 . . . . . . .", + ". . . . . . 4 5 4 . . . . . . .", + ". . . . 4 5 5 5 5 5 4 . . . . .", + ". . . . . 4 5 5 5 4 . . . . . .", + ". . . . . . 4 5 4 . . . . . . .", + ". . . . . . . 4 . . . . . . . .", + ". . . . . . . . . . . . . . . ." + ], + "radio_send": [ + ". . . . . . . . . . . . . . . .", + ". . . . 8 8 8 8 8 8 8 . . . . .", + ". . . 8 . . . . . . . 8 . . . .", + ". . 8 . . 8 8 8 8 8 . . 8 . . .", + ". 8 . . 8 . . . . . 8 . . 8 . .", + ". . . 8 . . 8 8 8 . . 8 . . . .", + ". . . . . 8 . . . 8 . . . . . .", + ". . . . . . . 4 . . . . . . . .", + ". . . . . . 4 5 4 . . . . . . .", + ". . . . . 4 5 5 5 4 . . . . . .", + ". . . . 4 5 5 5 5 5 4 . . . . .", + ". . . . . . 4 5 4 . . . . . . .", + ". . . . . . 4 5 4 . . . . . . .", + ". . . . . . 4 5 4 . . . . . . .", + ". . . . . . 4 5 4 . . . . . . .", + ". . . . . . . . . . . . . . . ." + ], + "radio_set_group_small": [ + ". . . . . . . . . . . . . . . .", + ". . . . . 8 . . . 8 . . . . . .", + ". . . 8 . . 8 8 8 . . 8 . . . .", + ". 8 . . 8 . . . . . 8 . . 8 . .", + ". . 8 . . 8 8 8 8 8 . . 8 . . .", + ". . . 8 . . . . . . . 8 . . . .", + ". . . . 8 8 8 8 8 8 8 . . . . .", + ". . . . . . . . . . . . . . . .", + ". . . 6 6 6 . . . . 6 6 6 . . .", + ". . 6 9 6 9 6 . . 6 9 6 9 6 . .", + ". . . 6 6 6 . . . . 6 6 6 . . .", + ". . . . . . . . . . . . . . . .", + ". . . 6 6 6 . . . . 6 6 6 . . .", + ". . 6 9 6 9 6 . . 6 9 6 9 6 . .", + ". . . 6 6 6 . . . . 6 6 6 . . .", + ". . . . . . . . . . . . . . . ." + ], + "microbit_logo": [ + ". . . . . . . . . . . . . . . .", + ". . . . . . . . . . . . . . . .", + ". . . . . . . . . . . . . . . .", + ". . . . . . . . . . . . . . . .", + ". . . . 4 4 4 4 4 4 4 4 d . . .", + ". . . 4 d 5 5 5 5 5 5 5 4 d . .", + ". . 4 d . . . . . . . . 5 4 d .", + ". . 4 d 4 4 d . . . 4 4 d 4 d .", + ". . 4 d 4 4 d . . . 4 4 d 4 d .", + ". . 4 d . 5 5 . . . . 5 5 4 d .", + ". . . 4 d . . . . . . . 4 d . .", + ". . . . 4 4 4 4 4 4 4 4 d . . .", + ". . . . . 5 5 5 5 5 5 5 . . . .", + ". . . . . . . . . . . . . . . .", + ". . . . . . . . . . . . . . . .", + ". . . . . . . . . . . . . . . ." + ], + "finger_release": [ + ". . . . . . . . . . . . . . . .", + ". . . . . . . f . . . . . . . .", + ". . . . . . f f f . . . . . . .", + ". . . . . f . f . f . . . . . .", + ". . . . . . . f . . . . . . . .", + ". . . . . . . f . . . . . . . .", + ". . . . . . . f . . . . . . . .", + ". . . . . . . . . . . . . . . .", + ". . . . . 4 4 4 4 4 . . . . . .", + ". . . . 4 4 4 4 4 4 4 d . . . .", + ". . . e 4 4 4 4 4 4 4 e d . . .", + ". . . e 2 4 4 4 4 4 2 e d . . .", + ". . . e e 2 2 2 2 2 e e d . . .", + ". . . . e e e e e e e d . . . .", + ". . . . . . . . . . . . . . . .", + ". . . . . . . . . . . . . . . ." + ], + "tile_color_black": [ + ". . . . . . . . . . . . . . . .", + ". . . . . 1 1 1 1 1 . . . . . .", + ". . . 1 1 f f f f f b b . . . .", + ". . 1 f f f f f f f f f b . . .", + ". . 1 f f f f f f f f f b . . .", + ". 1 f f f f f f f f f f f b . .", + ". 1 f f f f f f f f f f f b d .", + ". 1 f f f f f f f f f f f b d .", + ". 1 f f f f f f f f f f f b d .", + ". 1 f f f f f f f f f f f b d .", + ". . b f f f f f f f f f b d d .", + ". . b f f f f f f f f f b d . .", + ". . . b b f f f f f b b d . . .", + ". . . . . b b b b b d d . . . .", + ". . . . . . . . . . . . . . . .", + ". . . . . . . . . . . . . . . ." + ], + "tile_color_red": [ + ". . . . . . . . . . . . . . . .", + ". . . . . 1 1 1 1 1 . . . . . .", + ". . . 1 1 2 2 2 2 2 b b . . . .", + ". . 1 2 2 2 2 2 2 2 2 2 b . . .", + ". . 1 2 2 2 2 2 2 2 2 2 b . . .", + ". 1 2 2 2 2 2 2 2 2 2 2 2 b . .", + ". 1 2 2 2 2 2 2 2 2 2 2 2 b d .", + ". 1 2 2 2 2 2 2 2 2 2 2 2 b d .", + ". 1 2 2 2 2 2 2 2 2 2 2 2 b d .", + ". 1 2 2 2 2 2 2 2 2 2 2 2 b d .", + ". . b 2 2 2 2 2 2 2 2 2 b d d .", + ". . b 2 2 2 2 2 2 2 2 2 b d . .", + ". . . b b 2 2 2 2 2 b b d . . .", + ". . . . . b b b b b d d . . . .", + ". . . . . . . . . . . . . . . .", + ". . . . . . . . . . . . . . . ." + ], + "tile_color_blue": [ + ". . . . . . . . . . . . . . . .", + ". . . . . 1 1 1 1 1 . . . . . .", + ". . . 1 1 8 8 8 8 8 b b . . . .", + ". . 1 8 8 8 8 8 8 8 8 8 b . . .", + ". . 1 8 8 8 8 8 8 8 8 8 b . . .", + ". 1 8 8 8 8 8 8 8 8 8 8 8 b . .", + ". 1 8 8 8 8 8 8 8 8 8 8 8 b d .", + ". 1 8 8 8 8 8 8 8 8 8 8 8 b d .", + ". 1 8 8 8 8 8 8 8 8 8 8 8 b d .", + ". 1 8 8 8 8 8 8 8 8 8 8 8 b d .", + ". . b 8 8 8 8 8 8 8 8 8 b d d .", + ". . b 8 8 8 8 8 8 8 8 8 b d . .", + ". . . b b 8 8 8 8 8 b b d . . .", + ". . . . . b b b b b d d . . . .", + ". . . . . . . . . . . . . . . .", + ". . . . . . . . . . . . . . . ." + ], + "tile_sparkle": [ + "c c c c c c c c c c c c c c c c", + "c c d c c c c c c c c c c c c c", + "c d 1 d c c c c c c c c c d c c", + "c c d c c c c c c c c c c c c c", + "c c c c c c c d c c d c c c c c", + "c c c c c c c c c d 1 d c c c c", + "c c c c c c c c c c d c c c c c", + "c d c c c c c c c c c c c c c c", + "c c c c c c c c c c c c c c c c", + "c c c c c c d c c 1 c c c c c c", + "c c c c c d 1 d c c c c c c c c", + "c c c c c c d c c c c c c c c c", + "c c c c c c c c c c c c c d c c", + "c c c c c c c c c c c c d 1 d c", + "c c c d c c c c c c c c c d c c", + "c c c c c c c c c c c c c c c c" + ], + "tile_rainbow": [ + ". . . . . . . . . . . . . . . .", + ". . 2 2 2 2 2 2 2 2 2 2 2 2 . .", + ". 2 2 2 2 2 2 2 2 2 2 2 2 2 2 .", + "2 2 2 4 4 4 4 4 4 4 4 4 4 2 2 2", + "2 2 4 4 4 4 4 4 4 4 4 4 4 4 2 2", + "2 4 4 5 5 5 5 5 5 5 5 5 5 4 4 2", + "4 4 5 5 5 5 5 5 5 5 5 5 5 5 4 4", + "4 5 5 5 7 7 7 7 7 7 7 7 5 5 5 4", + "5 5 7 7 7 7 7 7 7 7 7 7 7 7 5 5", + "5 7 7 7 7 8 8 8 8 8 8 7 7 7 7 5", + "7 7 7 7 8 8 8 8 8 8 8 8 7 7 7 5", + "7 7 7 8 8 8 c c c c 8 8 8 7 7 7", + "7 7 8 8 8 c c c c c c 8 8 8 7 7", + "7 7 8 8 c c a a a a c c 8 8 7 7", + "7 7 8 8 c c a . . a c c 8 8 7 7", + ". . . . . . . . . . . . . . . ." + ], + "tile_color_green": [ + ". . . . . . . . . . . . . . . .", + ". . . . . 1 1 1 1 1 . . . . . .", + ". . . 1 1 7 7 7 7 7 b b . . . .", + ". . 1 7 7 7 7 7 7 7 7 7 b . . .", + ". . 1 7 7 7 7 7 7 7 7 7 b . . .", + ". 1 7 7 7 7 7 7 7 7 7 7 7 b . .", + ". 1 7 7 7 7 7 7 7 7 7 7 7 b d .", + ". 1 7 7 7 7 7 7 7 7 7 7 7 b d .", + ". 1 7 7 7 7 7 7 7 7 7 7 7 b d .", + ". 1 7 7 7 7 7 7 7 7 7 7 7 b d .", + ". . b 7 7 7 7 7 7 7 7 7 b d d .", + ". . b 7 7 7 7 7 7 7 7 7 b d . .", + ". . . b b 7 7 7 7 7 b b d . . .", + ". . . . . b b b b b d d . . . .", + ". . . . . . . . . . . . . . . .", + ". . . . . . . . . . . . . . . ." + ], + "tile_color_magenta": [ + ". . . . . . . . . . . . . . . .", + ". . . . . 1 1 1 1 1 . . . . . .", + ". . . 1 1 a a a a a b b . . . .", + ". . 1 a a a a a a a a a b . . .", + ". . 1 a a a a a a a a a b . . .", + ". 1 a a a a a a a a a a a b . .", + ". 1 a a a a a a a a a a a b d .", + ". 1 a a a a a a a a a a a b d .", + ". 1 a a a a a a a a a a a b d .", + ". 1 a a a a a a a a a a a b d .", + ". . b a a a a a a a a a b d d .", + ". . b a a a a a a a a a b d . .", + ". . . b b a a a a a b b d . . .", + ". . . . . b b b b b d d . . . .", + ". . . . . . . . . . . . . . . .", + ". . . . . . . . . . . . . . . ." + ], + "tile_color_yellow": [ + ". . . . . . . . . . . . . . . .", + ". . . . . 1 1 1 1 1 . . . . . .", + ". . . 1 1 5 5 5 5 5 b b . . . .", + ". . 1 5 5 5 5 5 5 5 5 5 b . . .", + ". . 1 5 5 5 5 5 5 5 5 5 b . . .", + ". 1 5 5 5 5 5 5 5 5 5 5 5 b . .", + ". 1 5 5 5 5 5 5 5 5 5 5 5 b d .", + ". 1 5 5 5 5 5 5 5 5 5 5 5 b d .", + ". 1 5 5 5 5 5 5 5 5 5 5 5 b d .", + ". 1 5 5 5 5 5 5 5 5 5 5 5 b d .", + ". . b 5 5 5 5 5 5 5 5 5 b d d .", + ". . b 5 5 5 5 5 5 5 5 5 b d . .", + ". . . b b 5 5 5 5 5 b b d . . .", + ". . . . . b b b b b d d . . . .", + ". . . . . . . . . . . . . . . .", + ". . . . . . . . . . . . . . . ." + ], + "rgbLed": [ + ". . . . f f f f f f f . . . . .", + ". . f f f 4 4 f 9 9 f f f . . .", + ". f 5 5 f 4 4 f 9 9 f b b f . .", + ". f 5 5 f f f f f f f b b f d .", + "f f f f f . . . . . f f f f f d", + "f 4 4 f . . . . . . . f 7 7 f d", + "f 4 4 f . . . . . . . f 7 7 f d", + "f f f f . . . . . . . f f f f d", + "f 2 2 f . . . . . . . f e e f d", + "f 2 2 f . . . . . . . f e e f d", + "f f f f . . . . . . . f f f f d", + "b f 6 6 f f f f f f f c c f b d", + ". f 6 6 f 8 8 f a a f c c 5 5 5", + ". b f f f 8 8 f a a f f f 5 5 5", + ". . b b f f f f f f f b b 5 5 4", + ". . . . d b b b b b b d d 4 4 ." + ], + "temp_warmer": [ + ". . . . . . . . . . . . . . . .", + ". . . . . . . . . . . . . . . .", + ". . . . . . . f . . . . . . . .", + ". . . . . . f 2 f . . . . . . .", + ". . . . . f 2 2 2 f . . . . . .", + ". . . . f 2 2 2 2 2 f . . . . .", + ". . . f 2 2 2 2 2 2 2 f . . . .", + ". . . f f f 2 2 2 f f f . . . .", + ". . . . . f 2 2 2 f . . . . . .", + ". . . . . f 2 2 2 f . . . . . .", + ". . . . . f 2 2 2 f . . . . . .", + ". . . . . f 2 2 2 f . . . . . .", + ". . . . . f 2 2 2 f . . . . . .", + ". . . . . f f f f f . . . . . .", + ". . . . . . . . . . . . . . . .", + ". . . . . . . . . . . . . . . ." + ], + "temp_colder": [ + ". . . . . . . . . . . . . . . .", + ". . . . . . . . . . . . . . . .", + ". . . . . f f f f f . . . . . .", + ". . . . . f 9 9 9 f . . . . . .", + ". . . . . f 9 9 9 f . . . . . .", + ". . . . . f 9 9 9 f . . . . . .", + ". . . . . f 9 9 9 f . . . . . .", + ". . . . . f 9 9 9 f . . . . . .", + ". . . f f f 9 9 9 f f f . . . .", + ". . . f 9 9 9 9 9 9 9 f . . . .", + ". . . . f 9 9 9 9 9 f . . . . .", + ". . . . . f 9 9 9 f . . . . . .", + ". . . . . . f 9 f . . . . . . .", + ". . . . . . . f . . . . . . . .", + ". . . . . . . . . . . . . . . .", + ". . . . . . . . . . . . . . . ." + ], + "light_sensor": [ + ". . . . . . . . . . . . . . . .", + ". . 8 8 8 8 5 5 5 8 8 8 8 . . .", + ". . 8 8 8 5 4 4 4 5 8 8 8 . . .", + ". . 8 8 8 5 4 4 4 5 8 8 8 . . .", + ". . 8 8 8 5 4 4 4 5 8 8 8 . . .", + ". . 8 8 8 8 5 5 5 8 8 8 8 . . .", + ". . 8 8 5 8 8 8 8 8 5 8 8 . . .", + ". . 8 5 8 8 8 5 8 8 8 5 8 . . .", + ". . 8 8 8 5 8 8 8 5 8 8 8 . . .", + ". . 8 8 5 8 8 5 8 8 5 8 8 . . .", + ". . 8 5 8 8 8 8 8 8 8 5 8 . . .", + ". . 8 8 8 8 8 5 8 8 8 8 8 . . .", + ". . 8 8 8 8 8 8 8 8 8 8 8 . . .", + ". . 8 8 8 2 2 2 2 2 8 8 8 . . .", + ". . 8 f f f f f f f f f 8 . . .", + ". . . . . . . . . . . . . . . ." + ], + "speakerSoft": [ + ". . . . . . . . . . . . . . . .", + ". . . . . . . . . . . . . . . .", + ". . . . . . . . . . . . . . . .", + ". . . . . c . . . . . . . . . .", + ". . . . c b . . . . . . . . . .", + ". . . c b c . . . . . . . . . .", + ". c c b c c . 8 . . . . . . . .", + ". b b c c c . . 8 . . . . . . .", + ". c c c c c . . 8 . . . . . . .", + ". c c c c c . 8 . . . . . . . .", + ". . . c c c . . . . . . . . . .", + ". . . . c c . . . . . . . . . .", + ". . . . . c . . . . . . . . . .", + ". . . . . . . . . . . . . . . .", + ". . . . . . . . . . . . . . . .", + ". . . . . . . . . . . . . . . ." + ], + "speakerFun": [ + ". . . . . . . . . . . . . . . .", + ". . . . . . . . 3 . . . 5 . . .", + ". . . . . . . 3 . . . . . . 2 .", + ". . . . . c . . . . . 2 . 2 . .", + ". . . . c b . . 2 . 2 . 2 . . .", + ". . . c b c . 2 . 2 . . . . 5 .", + ". c c b c c . . . . . . . . . .", + ". b b c c c . 4 . 4 . 4 . 4 . .", + ". c c c c c . . 4 . 4 . 4 . 4 .", + ". c c c c c . . . . . . . . . .", + ". . . c c c . 6 . 6 . 5 . . . .", + ". . . . c c . . 6 . 6 . 6 . . .", + ". . . . . c . . . . . 6 . 6 . .", + ". . . . . . . 9 . . . . . . . .", + ". . . . . . . . . . . . . . . .", + ". . . . . . . . . . . . . . . ." + ], + "music": [ + ". . . . . . . . . . . . . . . .", + ". . . . . . . . . . . . . . . .", + ". . . . . . . . . . . f c . . .", + ". . . . . . . . . c c c c b . .", + ". . . . . . . c c c b b c b . .", + ". . . . . f c c b b b . c b . .", + ". . . . . c b b b . . . c b . .", + ". . . . . c b . . . . . c b . .", + ". . . . . c b . . . . . c b . .", + ". . . . . c b . . . f f c b . .", + ". . . f f c b . . f c c c b . .", + ". . f c c c b . . f c c b b . .", + ". . f c c b b . . . b b b . . .", + ". . . b b b . . . . . . . . . .", + ". . . . . . . . . . . . . . . .", + ". . . . . . . . . . . . . . . ." + ], + "note_on": [ + "1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1", + "1 1 1 1 1 1 1 c c c c 1 1 1 1 1", + "1 1 1 1 1 1 c f f f f c 1 1 1 1", + "1 1 1 1 1 c f f f f f f c 1 1 1", + "1 1 1 1 c f f f f f f f f c 1 1", + "1 1 1 1 c f f f f f f f f c 1 1", + "1 1 1 c f f f f f f f f f c 1 1", + "1 1 1 c f f f f f f f f f c 1 1", + "1 1 1 c f f f f f f f f f c 1 1", + "1 1 1 c f f f f f f f f f c 1 1", + "1 1 1 c f f f f f f f f c 1 1 1", + "1 1 1 c f f f f f f f f c 1 1 1", + "1 1 1 1 c f f f f f f c 1 1 1 1", + "1 1 1 1 1 c f f f f c 1 1 1 1 1", + "1 1 1 1 1 1 c c c c 1 1 1 1 1 1", + "1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1" + ], + "note_off": [ + "1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1", + "1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1", + "1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1", + "1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1", + "1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1", + "1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1", + "1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1", + "1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1", + "1 1 1 1 1 1 1 1 f 1 1 1 1 1 1 1", + "1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1", + "1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1", + "1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1", + "1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1", + "1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1", + "1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1", + "1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1" + ], + "soundGiggle": [ + ". . . . . . . . . . . . . . . .", + ". . . . . . . . . . . . . . . .", + ". . . . . 4 4 4 4 4 . . . . . .", + ". . . . 4 5 5 5 5 5 4 . . . . .", + ". . . 4 5 5 5 5 5 5 5 4 . . . .", + ". . 4 5 5 f 5 5 5 f 5 5 4 . . .", + ". . 4 5 f 5 f 5 f 5 f 5 4 d . .", + ". . 4 3 3 5 5 5 5 5 3 3 4 d . .", + ". . 4 5 5 f f f f f 5 5 4 d . .", + ". . 4 5 5 f f 2 2 2 5 5 4 d . .", + ". . . 4 5 5 f 2 2 5 5 4 d . . .", + ". . . . 4 5 5 5 5 5 4 d . . . .", + ". . . . . 4 4 4 4 4 d . . . . .", + ". . . . . . . . . . . . . . . .", + ". . . . . . . . . . . . . . . .", + ". . . . . . . . . . . . . . . ." + ], + "soundHappy": [ + ". . . . . . . . . . . . . . . .", + ". . . . . . . . . . . . . . . .", + ". . . . . 4 4 4 4 4 . . . . . .", + ". . . . 4 5 5 5 5 5 4 . . . . .", + ". . . 4 5 5 5 5 5 5 5 4 . . . .", + ". . 4 5 5 f 5 5 5 f 5 5 4 . . .", + ". . 4 5 5 f 5 5 5 f 5 5 4 d . .", + ". . 4 5 5 5 5 5 5 5 5 5 4 d . .", + ". . 4 5 5 f 5 5 5 f 5 5 4 d . .", + ". . 4 5 5 5 f f f 5 5 5 4 d . .", + ". . . 4 5 5 5 5 5 5 5 4 d . . .", + ". . . . 4 5 5 5 5 5 4 d . . . .", + ". . . . . 4 4 4 4 4 d . . . . .", + ". . . . . . . . . . . . . . . .", + ". . . . . . . . . . . . . . . .", + ". . . . . . . . . . . . . . . ." + ], + "soundHello": [ + ". . . . . . . . . . . . . . . .", + ". . . . . . . . . . . . . . . .", + ". . . . . . . . . . . 8 8 8 . .", + ". . . . . . . . . . 8 . . . 8 .", + ". . . . 4 4 4 4 . . . . 4 . . .", + ". . . 4 5 5 5 5 4 . . 4 5 4 . .", + ". . 4 5 f 5 5 f 5 4 . 8 8 8 d .", + ". . 4 5 5 5 5 5 5 4 d 8 9 8 d .", + ". . 4 5 f 5 5 f 5 4 8 9 9 8 d .", + ". . 4 5 5 f f 5 5 4 8 9 8 d . .", + ". . . 4 5 5 5 5 4 8 9 9 8 d . .", + ". . . . 4 4 4 4 9 9 9 8 d . . .", + ". . . 8 9 9 9 9 9 9 8 d . . . .", + ". . 8 9 9 9 9 9 9 9 8 d . . . .", + ". . . . . . . . . . . . . . . .", + ". . . . . . . . . . . . . . . ." + ], + "soundMysterious": [ + ". . . . . . . . . . . . . . . .", + ". . . . . . . . . . . . . . . .", + ". . . . 6 6 6 6 6 6 . . . . . .", + ". . . 6 7 7 7 7 7 7 6 . . . . .", + ". . f f 1 7 7 7 7 f 1 f . . . .", + ". . f f f f 7 7 f f f f d . . .", + ". . 6 f f f 7 7 f f f 6 d . . .", + ". . 6 7 7 7 7 7 7 7 7 6 d . . .", + ". . 6 7 7 f 7 7 f 7 7 6 d . . .", + ". . . 6 7 7 f f 7 7 6 d . . . .", + ". . . . 6 7 7 7 7 6 d . . . . .", + ". . . . . 6 7 7 6 d . . . . . .", + ". . . . . . 6 6 d . . . . . . .", + ". . . . . . . . . . . . . . . .", + ". . . . . . . . . . . . . . . .", + ". . . . . . . . . . . . . . . ." + ], + "soundSad": [ + ". . . . . . . . . . . . . . . .", + ". . . . . . . . . . . . . . . .", + ". . . . . 4 4 4 4 4 . . . . . .", + ". . . . 4 5 5 5 5 5 4 . . . . .", + ". . . 4 5 5 5 5 5 5 5 4 . . . .", + ". . 4 5 5 f 5 5 5 f 5 5 4 . . .", + ". . 4 5 5 f 5 5 5 f 5 5 4 d . .", + ". . 4 5 5 5 5 5 5 5 5 5 4 d . .", + ". . 4 5 5 5 f f f 5 5 5 4 d . .", + ". . 4 5 5 f 5 5 5 f 5 5 4 d . .", + ". . . 4 5 5 5 5 5 5 5 4 d . . .", + ". . . . 4 5 5 5 5 5 4 d . . . .", + ". . . . . 4 4 4 4 4 d . . . . .", + ". . . . . . . . . . . . . . . .", + ". . . . . . . . . . . . . . . .", + ". . . . . . . . . . . . . . . ." + ], + "soundSlide": [ + ". . . . . . . . . . . . . . . .", + ". . . . . . . . . . . . . . . .", + ". . . . . . . . . . . . . . . .", + ". . . . . . 2 2 2 e e e . . . .", + ". . . . . 2 2 2 e e d e d . . .", + ". . . . . 2 2 e d e e e d . . .", + ". . . . . 2 2 e d e d e d . . .", + ". . . . . 2 2 e d e e e d . . .", + ". . . . . 2 2 e d e d e d . . .", + ". . . . . 2 2 e d e e e d . . .", + ". . . . 2 2 2 e d e d e d . . .", + ". . . 2 2 2 e d . e e e d . . .", + ". . 2 2 2 e d . . e d e d . . .", + ". . . . . . . . . . . . . . . .", + ". . . . . . . . . . . . . . . .", + ". . . . . . . . . . . . . . . ." + ], + "soundSoaring": [ + ". . . . . . . . . . . . . . . .", + ". . . . . . . . . . . . . . . .", + ". . . . . 9 9 9 9 9 . . . . . .", + ". . . . 9 1 9 9 9 9 9 . . . . .", + ". . . 9 1 9 9 7 7 7 9 9 . . . .", + ". . . 9 1 9 7 f 7 f 7 9 . . . .", + ". . 6 6 6 6 6 6 6 6 6 6 6 d . .", + ". 6 9 5 9 5 9 5 9 5 9 5 9 6 d .", + ". 8 8 8 8 8 8 8 8 8 8 8 8 8 d .", + ". . . . . . 8 8 8 d . . . . . .", + ". . . . 9 . . . . . 9 . . . . .", + ". . . . . 9 9 9 9 9 . . . . . .", + ". . . 9 . . . . . . . 9 . . . .", + ". . . . 9 9 9 9 9 9 9 . . . . .", + ". . . . . . . . . . . . . . . .", + ". . . . . . . . . . . . . . . ." + ], + "soundSpring": [ + ". . . . . . . . . . . . . . . .", + ". . . . . . . . . . . . . . . .", + ". . . 2 d . . . . . . . . . . .", + ". . 2 d . . 4 4 d . . . . . . .", + ". 2 d . . 4 d d 5 d . . . . . .", + ". 2 d . 4 d . . 5 d . . . . . .", + ". d 4 4 d . . 5 d . . . . . . .", + ". . d d . . 5 d . . 7 7 d . . .", + ". . . . . 5 d . . 7 d d 9 d . .", + ". . . . . 5 d . 7 d . . 9 d . .", + ". . . . . d 7 7 d . . 9 d . . .", + ". . . . . . d d . . 9 d . . . .", + ". . . . . . . . . . d . . . . .", + ". . . . . . . . . . . . . . . .", + ". . . . . . . . . . . . . . . .", + ". . . . . . . . . . . . . . . ." + ], + "soundTwinkle": [ + ". . . . . . . . . . . . . . . .", + ". . . . . . . . . . . . . . . .", + ". . . 3 . . . 3 . . . 3 . . . .", + ". . 3 5 3 . . 3 . . . . . . . .", + ". . . 3 . . 3 5 3 . . . . . . .", + ". . . . . . 3 5 3 . . . . 3 . .", + ". . . . 3 3 5 5 5 3 3 . . . . .", + ". . 3 3 5 5 5 5 5 5 5 3 3 . . .", + ". . . . 3 3 5 5 5 3 3 . . . . .", + ". . . . . . 3 5 3 . . . . . . .", + ". . . . . . 3 5 3 . . . 3 . . .", + ". . . 3 . . . 3 . . . 3 5 3 . .", + ". . . . . . . 3 . . . . 3 . . .", + ". . . . . . . . . . . . . . . .", + ". . . . . . . . . . . . . . . .", + ". . . . . . . . . . . . . . . ." + ], + "soundYawn": [ + ". . . . . . . . . . . . . . . .", + ". . . . . . . . . . . . . . . .", + ". . . . . 4 4 4 4 4 . . . . . .", + ". . . . 4 5 5 5 5 5 4 . . . . .", + ". . . 4 5 5 5 5 5 5 5 4 . . . .", + ". . 4 5 f f 5 5 5 f f 5 4 . . .", + ". . 4 5 5 5 5 5 5 5 5 5 4 d . .", + ". . 4 5 5 5 f f f 5 5 5 4 d . .", + ". . 4 5 5 5 f f f 5 5 5 4 d . .", + ". . 4 5 5 5 f 2 2 5 5 5 4 d . .", + ". . . 4 5 5 5 5 5 5 5 4 d . . .", + ". . . . 4 5 5 5 5 5 4 d . . . .", + ". . . . . 4 4 4 4 4 d . . . . .", + ". . . . . . . . . . . . . . . .", + ". . . . . . . . . . . . . . . .", + ". . . . . . . . . . . . . . . ." + ], + "moveShake": [ + ". . . . . . . . . . . . . . . .", + ". . . . . . . . . . . . . . . .", + ". . . . . . . . . . 8 . . 8 . .", + ". . . 9 9 9 9 9 9 . . 8 . . 8 .", + ". . . 9 6 6 6 6 6 . . . 8 . 8 .", + ". . . 9 6 f f f f f f . 8 . 8 .", + ". . . 9 6 f 5 5 5 5 f . . . . .", + ". . . 9 6 f 5 5 5 5 f 6 9 . . .", + ". . . . . f 5 5 5 5 f 6 9 . . .", + ". 8 . 8 . f f f f f f 6 9 . . .", + ". 8 . 8 . . . 6 6 6 6 6 9 . . .", + ". 8 . . 8 . . 9 9 9 9 9 9 . . .", + ". . 8 . . 8 . . . . . . . . . .", + ". . . . . . . . . . . . . . . .", + ". . . . . . . . . . . . . . . .", + ". . . . . . . . . . . . . . . ." + ], + "moveTiltDown": [ + ". . . . . . . . . . . . . . . .", + ". . . . . . . . . . . . . . . .", + ". . . . . . . 8 8 8 8 . . . . .", + ". . . . . . 8 . . . . . . . . .", + ". . . . . 8 . . . . . . . . . .", + ". . . 8 8 8 8 8 . . . . . . . .", + ". . . . 8 8 8 9 9 9 9 9 9 9 . .", + ". . . . 9 8 9 9 9 9 9 9 9 9 . .", + ". . . . 9 9 9 9 9 9 9 9 9 9 . .", + ". f f f f f f f f f 9 9 9 9 . .", + ". . f 5 5 5 5 5 5 5 f 9 9 9 . .", + ". . . f 5 5 5 5 5 5 5 f 9 9 . .", + ". . . . f 5 5 5 5 5 5 5 f 9 . .", + ". . . . . f f f f f f f f f . .", + ". . . . . . . . . . . . . . . .", + ". . . . . . . . . . . . . . . ." + ], + "moveTiltUp": [ + ". . . . . . . . . . . . . . . .", + ". . . . . . . . . . . . . . . .", + ". . . . . . 8 8 8 8 . . . . . .", + ". . . . . . . . . . 8 . . . . .", + ". . . . . . . . . . . 8 . . . .", + ". . . . . . . . . 8 8 8 8 8 . .", + ". . 9 9 9 9 9 9 9 9 8 8 8 . . .", + ". . 9 9 9 9 9 9 9 9 9 8 . . . .", + ". . 9 9 9 9 9 9 9 9 9 . . . . .", + ". . 9 9 9 9 8 8 8 8 8 f f f . .", + ". . 9 9 9 8 6 6 6 6 6 5 f . . .", + ". . 9 9 8 6 6 6 6 6 6 f . . . .", + ". . 9 8 6 6 6 6 6 6 8 . . . . .", + ". . 8 8 8 8 8 8 8 8 9 . . . . .", + ". . . . . . . . . . . . . . . .", + ". . . . . . . . . . . . . . . ." + ], + "moveTiltLeft": [ + ". . . . . . . . . . . . . . . .", + ". . . . . . . . . . 8 . . . . .", + ". . . . . . f f . 8 8 . . . . .", + ". . . . . f 5 f 8 8 8 8 8 . . .", + ". . 9 9 8 5 5 f 9 8 8 . . 8 . .", + ". . 9 8 6 5 5 f 9 9 8 . . . 8 .", + ". . 9 8 6 5 5 f 9 9 9 . . . 8 .", + ". . 9 8 6 5 5 f 9 9 9 . . . 8 .", + ". . 9 8 6 5 5 f 9 9 9 . . 8 . .", + ". . 9 8 6 5 5 f 9 9 9 . . . . .", + ". . 9 8 6 5 5 f 9 9 9 . . . . .", + ". . 9 9 8 5 5 f 9 9 9 . . . . .", + ". . . . . f 5 f . . . . . . . .", + ". . . . . . f f . . . . . . . .", + ". . . . . . . . . . . . . . . .", + ". . . . . . . . . . . . . . . ." + ], + "moveTiltRight": [ + ". . . . . . . . . . . . . . . .", + ". . . . . 8 . . . . . . . . . .", + ". . . . . 8 8 . f f . . . . . .", + ". . . 8 8 8 8 8 f 5 f . . . . .", + ". . 8 . . 8 8 9 f 5 5 8 9 9 . .", + ". 8 . . . 8 9 9 f 5 5 6 8 9 . .", + ". 8 . . . 9 9 9 f 5 5 6 8 9 . .", + ". 8 . . . 9 9 9 f 5 5 6 8 9 . .", + ". . 8 . . 9 9 9 f 5 5 6 8 9 . .", + ". . . . . 9 9 9 f 5 5 6 8 9 . .", + ". . . . . 9 9 9 f 5 5 6 8 9 . .", + ". . . . . 9 9 9 f 5 5 8 9 9 . .", + ". . . . . . . . f 5 f . . . . .", + ". . . . . . . . f f . . . . . .", + ". . . . . . . . . . . . . . . .", + ". . . . . . . . . . . . . . . ." + ], + "moveFaceUp": [ + ". . . . . . . . . . . . . . . .", + ". . . . . . . 8 . . . . . . . .", + ". . . . . . 8 8 8 . . . . . . .", + ". . . . . 8 8 8 8 8 . . . . . .", + ". . . . . . . 8 . . . . . . . .", + ". . . . . . . 8 . . . . . . . .", + ". . . . . . . 8 . . . . . . . .", + ". . . . . . . . . . . . . . . .", + ". . . . f f f f f f f . . . . .", + ". . . f 5 5 5 5 5 5 5 f . . . .", + ". . f 5 5 5 5 5 5 5 5 5 f . . .", + ". f 5 5 5 5 5 5 5 5 5 5 5 f . .", + "f f f f f f f f f f f f f f f .", + ". . . . . . . . . . . . . . . .", + ". . . . . . . . . . . . . . . .", + ". . . . . . . . . . . . . . . ." + ], + "moveFaceDown": [ + ". . . . . . . . . . . . . . . .", + ". . . . . . . . . . . . . . . .", + ". . . . . . . . . . . . . . . .", + ". f f f f f f f f f f f f f f f", + ". . f 5 5 5 5 5 5 5 5 5 5 5 f .", + ". . . f 5 5 5 5 5 5 5 5 5 f . .", + ". . . . f 5 5 5 5 5 5 5 f . . .", + ". . . . . f f f f f f f . . . .", + ". . . . . . . . . . . . . . . .", + ". . . . . . . . 8 . . . . . . .", + ". . . . . . . . 8 . . . . . . .", + ". . . . . . . . 8 . . . . . . .", + ". . . . . . 8 8 8 8 8 . . . . .", + ". . . . . . . 8 8 8 . . . . . .", + ". . . . . . . . 8 . . . . . . .", + ". . . . . . . . . . . . . . . ." + ], + "diceToss": [ + ". . . . . . . . . . . . . . . .", + ". . . . . . . . . . . . . . . .", + ". . . . . b b b b b b b b . . .", + ". . . . b 1 1 1 1 1 1 1 b b . .", + ". . . b 1 1 1 b 1 1 1 b d b . .", + ". . b 1 1 1 1 1 1 1 b d d b . .", + ". . c b b b b b b b d d b b . .", + ". . c b b c c c b b d d d b . .", + ". . c b c b b b c b d d d b . .", + ". . c b b b b b c b d b d b d .", + ". . c b b b c c b b d d d b d .", + ". . c b b b b b b b d d b d . .", + ". . c b b b c b b b d b d . . .", + ". . . c c c c c c c b d . . . .", + ". . . . . . . . . . . . . . . .", + ". . . . . . . . . . . . . . . ." + ], + "cupXread": [ + ". . . . . . . . . . . . . . . .", + ". . . . . . . . . . . . . . . .", + ". . . . . . . . . . . . . . . .", + ". . . . c c c c c c c . . . . .", + ". . . c f f f f f f f c . . . .", + ". . c f f f 4 5 4 f f f c . . .", + ". . c c f 4 5 5 5 4 f c c . . .", + ". . c d c c c c c c c b c . . .", + ". . c d 1 d d d d d d b c . . .", + ". . c d 1 d f d f d d b c . . .", + ". . c d 1 d f d f d d b c . . .", + ". . c d 1 d d f d d d b c . . .", + ". . c d 1 d f d f d d b c . . .", + ". . . d 1 d f d f d d b . . . .", + ". . . . 1 d d d d d d . . . . .", + ". . . . . . . . . . . . . . . ." + ], + "cupYread": [ + ". . . . . . . . . . . . . . . .", + ". . . . . . . . . . . . . . . .", + ". . . . . . . . . . . . . . . .", + ". . . . c c c c c c c . . . . .", + ". . . c f f f f f f f c . . . .", + ". . c f f f 4 5 4 f f f c . . .", + ". . c c f 4 5 5 5 4 f c c . . .", + ". . c d c c c c c c c b c . . .", + ". . c d 1 d d d d d d b c . . .", + ". . c d 1 d f d f d d b c . . .", + ". . c d 1 d f d f d d b c . . .", + ". . c d 1 d d f d d d b c . . .", + ". . c d 1 d d f d d d b c . . .", + ". . . d 1 d d f d d d b . . . .", + ". . . . 1 d d d d d d . . . . .", + ". . . . . . . . . . . . . . . ." + ], + "cupZread": [ + ". . . . . . . . . . . . . . . .", + ". . . . . . . . . . . . . . . .", + ". . . . . . . . . . . . . . . .", + ". . . . c c c c c c c . . . . .", + ". . . c f f f f f f f c . . . .", + ". . c f f f 4 5 4 f f f c . . .", + ". . c c f 4 5 5 5 4 f c c . . .", + ". . c d c c c c c c c b c . . .", + ". . c d 1 d d d d d d b c . . .", + ". . c d 1 d f f f d d b c . . .", + ". . c d 1 d d d f d d b c . . .", + ". . c d 1 d d f d d d b c . . .", + ". . c d 1 d f d d d d b c . . .", + ". . . d 1 d f f f d d b . . . .", + ". . . . 1 d d d d d d . . . . .", + ". . . . . . . . . . . . . . . ." + ], + "cupXassign": [ + ". . . . . . . . . 4 4 4 4 4 4 4", + ". . . . . . . . 4 5 5 5 5 5 5 5", + ". . . . . . . 4 5 4 4 4 4 4 4 4", + ". . . . . . . 4 5 4 . . . . . .", + ". . . . c c c 4 5 4 c . . . . .", + ". . . c f 4 5 5 5 5 5 4 . . . .", + ". . c f f f 4 5 5 5 4 f c . . .", + ". . c c f 4 5 4 5 4 f c c . . .", + ". . c d c c c c c c c b c . . .", + ". . c d 1 d d d d d d b c . . .", + ". . c d 1 d f d f d d b c . . .", + ". . c d 1 d f d f d d b c . . .", + ". . c d 1 d d f d d d b c . . .", + ". . c d 1 d f d f d d b c . . .", + ". . . d 1 d f d f d d b . . . .", + ". . . . 1 d d d d d d . . . . ." + ], + "cupYassign": [ + ". . . . . . . . . 4 4 4 4 4 4 4", + ". . . . . . . . 4 5 5 5 5 5 5 5", + ". . . . . . . 4 5 4 4 4 4 4 4 4", + ". . . . . . . 4 5 4 . . . . . .", + ". . . . c c c 4 5 4 c . . . . .", + ". . . c f 4 5 5 5 5 5 4 . . . .", + ". . c f f f 4 5 5 5 4 f c . . .", + ". . c c f 4 5 4 5 4 f c c . . .", + ". . c d c c c c c c c b c . . .", + ". . c d 1 d d d d d d b c . . .", + ". . c d 1 d f d f d d b c . . .", + ". . c d 1 d f d f d d b c . . .", + ". . c d 1 d d f d d d b c . . .", + ". . c d 1 d d f d d d b c . . .", + ". . . d 1 d d f d d d b . . . .", + ". . . . 1 d d d d d d . . . . ." + ], + "cupZassign": [ + ". . . . . . . . . 4 4 4 4 4 4 4", + ". . . . . . . . 4 5 5 5 5 5 5 5", + ". . . . . . . 4 5 4 4 4 4 4 4 4", + ". . . . . . . 4 5 4 . . . . . .", + ". . . . c c c 4 5 4 c . . . . .", + ". . . c f 4 5 5 5 5 5 4 . . . .", + ". . c f f f 4 5 5 5 4 f c . . .", + ". . c c f 4 5 4 5 4 f c c . . .", + ". . c d c c c c c c c b c . . .", + ". . c d 1 d d d d d d b c . . .", + ". . c d 1 d f f f d d b c . . .", + ". . c d 1 d d d f d d b c . . .", + ". . c d 1 d d f d d d b c . . .", + ". . c d 1 d f d d d d b c . . .", + ". . . d 1 d f f f d d b . . . .", + ". . . . 1 d d d d d d . . . . ." + ], + "cupXwritten": [ + "4 4 4 4 4 4 4 . . . . . . . . .", + "5 5 5 5 5 5 5 4 . . . . . . . .", + "4 4 4 4 4 4 4 5 4 . . . . . . .", + ". . . . . . 4 5 4 . . . . . . .", + ". . . . c c 4 5 4 c c . . . . .", + ". . . c 4 5 5 5 5 5 4 c . . . .", + ". . c f f 4 5 5 5 4 f f c . . .", + ". . c c f 4 4 5 4 4 f c c . . .", + ". . c d c c c c c c c b c . . .", + ". . c d 1 d d d d d d b c . . .", + ". . c d 1 d f d f d d b c . . .", + ". . c d 1 d f d f d d b c . . .", + ". . c d 1 d d f d d d b c . . .", + ". . c d 1 d f d f d d b c . . .", + ". . . d 1 d f d f d d b . . . .", + ". . . . 1 d d d d d d . . . . ." + ], + "cupYwritten": [ + "4 4 4 4 4 4 4 . . . . . . . . .", + "5 5 5 5 5 5 5 4 . . . . . . . .", + "4 4 4 4 4 4 4 5 4 . . . . . . .", + ". . . . . . 4 5 4 . . . . . . .", + ". . . . c c 4 5 4 c c . . . . .", + ". . . c 4 5 5 5 5 5 4 c . . . .", + ". . c f f 4 5 5 5 4 f f c . . .", + ". . c c f 4 4 5 4 4 f c c . . .", + ". . c d c c c c c c c b c . . .", + ". . c d 1 d d d d d d b c . . .", + ". . c d 1 d f d f d d b c . . .", + ". . c d 1 d f d f d d b c . . .", + ". . c d 1 d d f d d d b c . . .", + ". . c d 1 d d f d d d b c . . .", + ". . . d 1 d d f d d d b . . . .", + ". . . . 1 d d d d d d . . . . ." + ], + "cupZwritten": [ + "4 4 4 4 4 4 4 . . . . . . . . .", + "5 5 5 5 5 5 5 4 . . . . . . . .", + "4 4 4 4 4 4 4 5 4 . . . . . . .", + ". . . . . . 4 5 4 . . . . . . .", + ". . . . c c 4 5 4 c c . . . . .", + ". . . c 4 5 5 5 5 5 4 c . . . .", + ". . c f f 4 5 5 5 4 f f c . . .", + ". . c c f 4 4 5 4 4 f c c . . .", + ". . c d c c c c c c c b c . . .", + ". . c d 1 d d d d d d b c . . .", + ". . c d 1 d f f f d d b c . . .", + ". . c d 1 d d d f d d b c . . .", + ". . c d 1 d d f d d d b c . . .", + ". . c d 1 d f d d d d b c . . .", + ". . . d 1 d f f f d d b . . . .", + ". . . . 1 d d d d d d . . . . ." + ], + "largeNewProgramIcon": [ + ".11111111..............11111111.", + "1bbbbbbbb..............bbbbbbbb1", + "1..............................1", + "1..............................1", + "1..............................1", + "1..............................1", + "1..............................1", + "1..............................1", + "1..............................1", + "b..............................b", + "................................", + "...............11...............", + "...............11...............", + "...............11...............", + "...............11...............", + "...........1111111111...........", + "...........1111111111...........", + "...........bbbb11bbbb...........", + "...............11...............", + "...............11...............", + "...............11...............", + "...............bb...............", + "................................", + "1..............................1", + "1..............................1", + "1..............................1", + "1..............................1", + "1..............................1", + "1..............................1", + "1..............................1", + "1..............................1", + "b11111111..............11111111b", + ".bbbbbbbb..............bbbbbbbb." + ], + "sampleFlashingHeart": [ + ".ffffffffffffffffffffffffffffff.", + "ffffffffffffffffffffffffffffffff", + "fffffffffffffffffffffff2ffffffff", + "ffffffffffffffffffffff212ff2ffff", + "ffffffffffffffffffffff212f212fff", + "ffffffffffffffffffffff212212ffff", + "fffffffffffffffffffffff2212fffff", + "ffffffff222222ffff222222f2222fff", + "fffffff22222222ff2222222221112ff", + "ffffff22111111222211111122222fff", + "fffff2211111111221111111122fffff", + "ffff221114444111111444411122ffff", + "fff22111422224111142222411122fff", + "fff221142ffff241142ffff241122fff", + "fff221142ffff241142ffff241122fff", + "fff2211142ffff2442ffff2411122fff", + "ffff221142fffff22fffff241122ffff", + "ffff2211142ffffffffff2411122ffff", + "fffff2211142ffffffff2411122fffff", + "ffffff2211142ffffff2411122ffffff", + "fffffff22111422ff22411122fffffff", + "ffffffff2211144224411122ffffffff", + "fffffffff22111144111122fffffffff", + "ffff222fff221111111122ffffffffff", + "fff21112fff2221111222fffffffffff", + "ffff2222ffff22211222ffffffffffff", + "ffffff2122ffff2222ffffffffffffff", + "fffff212212ffff22fffffffffffffff", + "ffff212f212fffffffffffffffffffff", + "fffff2ff212fffffffffffffffffffff", + "fffffffff2ffffffffffffffffffffff", + "bffffffffffffffffffffffffffffffb", + ".bbbbbbbbbbbbbbbbbbbbbbbbbbbbbb." + ], + "sampleSmileyButtons": [ + ".111111111111111111111111111111.", + "11111111111111111111111111111111", + "11111111111111111111111111111111", + "11111bbbbbbbbbbbbbbbb11111111111", + "1111b1111111111111111b1111111111", + "1111b1111111111111111b1111111111", + "1111b1111114444111111bd111111111", + "1111b1111445555441111bd111111111", + "1111b1114555555554111bd111111111", + "1111b111455f55f554111bd111111111", + "1111b114555f55f555411bd111111111", + "1111b1145555555555411bd111111111", + "1111b1145555555555411bd111111111", + "1111b114555f55f555411bd111111111", + "1111b1114555ff5554111bd111111111", + "1111b1114555555554111bd111111111", + "1111b1111445555441111bd111111111", + "1111b1111114444111111bd111111111", + "1111b111111111111111888811111111", + "1111b111111111111118666681111111", + "11111bbbbbb1111bbb86611668111111", + "111111dddddb11bdd866166166811111", + "11111111111b11bd.8661111668d1111", + "11111111111db11bd8661661668d1111", + "111111111111dbbbd8661661668d1111", + "1111111111111ddd18866666688d1111", + "11111111111111111188666688d11111", + "1111111111111111111888888d111111", + "111111111111111111118888d1111111", + "11111111111111111111111111111111", + "11111111111111111111111111111111", + "b111111111111111111111111111111b", + ".bbbbbbbbbbbbbbbbbbbbbbbbbbbbbb." + ], + "sampleDice": [ + ".111111111111111111111111111111.", + "11111111111111111111111111111111", + "11111111111111111111111111111111", + "11111111111111111111111111111111", + "1111ccccc11111111111111111111111", + "111111111c1111111111111111111111", + "1111111111c111111111111111111111", + "111cccc1111111111111111111111111", + "1111111cc1111cccc111111111111111", + "111111111111cdb11cc1111111111111", + "11111111111cdddb111ccc1111111111", + "111111111ccddddb111111c111111111", + "11111111cddddddb111111cd11111111", + "1111111cdddddddb1111111c11111111", + "1111111cddcdddddb111c11c11111111", + "1111111cddddddddb111111cd1111111", + "11111111cdddddcdb1111111c1111111", + "11111111cdddddddbbbb1111cd111111", + "11111111cddddddbbbbbbbbb1c111111", + "11111111cdddddbbbbcbbbbbbcd11111", + "111111111cddbbbbbbbbbbcbbcd11111", + "111111111cdbbbbbbbcbbbbbcd111111", + "111111111cbbbbcbbbbbbbbcd1111111", + "111111111cccbbbbbbcbbccd11111111", + "111111111111cccccbbbcd1111111111", + "11111111111111111cccd11111111111", + "11111111111111111111111111111111", + "11111111111111111111111111111111", + "1111111111ddddddddddddddddd11111", + "1111111111111ddddddddddddd111111", + "11111111111111111111111111111111", + "b111111111111111111111111111111b", + ".bbbbbbbbbbbbbbbbbbbbbbbbbbbbbb." + ], + "sampleFirefly": [ + ".ffffffffffffffffffffffffffffff.", + "ffffffffffffffffffffffffffffffff", + "ffffffffffffffffffffffffffffffff", + "ffffffffffffffffffffff444fffffff", + "fffffffffffffffffffff45154ffffff", + "ffffffffffffffffffff4511154fffff", + "ffffffffffffffffffff4511154fffff", + "ffffffffffffffffffff4511154fffff", + "fffffffffffffffffffff45554ffffff", + "ffffffff444fffffffffff444fffffff", + "fffffff45154ffffffffffffffffffff", + "ffffff4511154fffffffffffffffffff", + "ffffff4511154fffffffffffffffffff", + "ffffff4511154fffffffffffffffffff", + "fffffff45554ffffffffffffffffffff", + "ffffffff444fffffffffffffffffffff", + "ffffffffffffffffffffffffffffffff", + "ffffffffffffffffffffffffffffffff", + "ffffffffffffffffffffffffffffffff", + "ffffffffffffffffffffffffffffffff", + "ffffffffffffffffffffffffffffffff", + "ffffffffffffffffffffffffffffffff", + "ffffffffffffffffffffffffffffffff", + "fffffffffffffffffffff444ffffffff", + "ffffffffffffffffffff45154fffffff", + "fffffffffffffffffff4511154ffffff", + "fffffffffffffffffff4511154ffffff", + "fffffffffffffffffff4511154ffffff", + "ffffffffffffffffffff45554fffffff", + "fffffffffffffffffffff444ffffffff", + "ffffffffffffffffffffffffffffffff", + "bffffffffffffffffffffffffffffffb", + "..bbbbbbbbbbbbbbbbbbbbbbbbbbbbb." + ], + "sampleClapLights": [ + ".ffffffff8fffffffffffffffffffff.", + "fffffffff8ffffffffffffffffffffff", + "fffffffff8ffffffffffffffffffffff", + "fffffffff8ffffffffffffffffffffff", + "fffffffff8ffffffffffffffffffffff", + "fffffffff8ffffffffffffffffffffff", + "fffffffffeffffffffffffffffffffff", + "ffffffffeeefffffffffffffffffffff", + "ffffffffeeefffffffffffffffffffff", + "ffffffff444fffffffffffffffffffff", + "fffffff45154ffffffff5fffffffffff", + "ffffff4511154fffffff5fffffffffff", + "ffffff4511154fffffff5fff5fffffff", + "ffffff4511154fffffff5ff5ffffffff", + "fffffff45554ffffffffff5fffffffff", + "ffffffff444fffff444fffffffffffff", + "fffffffffffffff44544fff5555fffff", + "fffffffffffff44445544fffffffffff", + "ffffffffffff4545545544ffffffffff", + "ffffffffffff4454554544444fffffff", + "ffffffffffff454545544545544fffff", + "ffffffffffff4454545545545554ffff", + "ffffffffffff45454545545544554fff", + "fffff5555fff44545455555554554fff", + "ffffffffffff45454555555554454fff", + "fffffffff5fff4545555555555454fff", + "ffffffff5fffff455555555555454fff", + "fffffff5ff5ffff45555555555454fff", + "ffffffffff5fffff45555555555454ff", + "ffffffffff5ffffff4555555555454ff", + "ffffffffffffffffff4445555554554f", + "bffffffffffffffffffff4555555554b", + "..bbbbbbbbbbbbbbbbbbbbbbbbbbbbb." + ], + "sampleRockPaperScissors": [ + ".111111111111111111111111111111.", + "11111111111111111111111111111111", + "11111111111111111111111111111111", + "11111111111111111111c11111111111", + "1111111111111111111c1ccc11111111", + "11111111ccc11111111c1111cc111111", + "1111111c422c111111c11d1111c11111", + "1111ccc42222c11111c111dd11cd1111", + "111c42c42c42cd1111c1111111cd1111", + "11c422242c42cd1111c1dd111cdd1111", + "11c42c242c42cd111c1111d11cd11111", + "11c42cc44222cd111c1111111cd11111", + "11c222cc442cd111c11dd1111cd11111", + "111c2224ccccd111c1111d11cd111111", + "1111ccccc1cdcd111cc11111cd111111", + "11111111c1cd1cd1111cc11cd1111111", + "11111111c1cc11cd11111ccd11111111", + "11111111c1cdc11cd111111111111111", + "11111111c1cd1c11cd11111111111111", + "11111111c1cd11c1cd11ccccc1111111", + "11111111c1cd111cd11cddddbc111111", + "11111111c1cd111111cd11ddbbc11111", + "11111111c1cd11111cd1dddddbbc1111", + "111111111cd11111cdddddddbbbcd111", + "1111111111111111cddddddbdbbcd111", + "1111111111111111cdddddbdbbbcd111", + "11111111111111111cdddbdbbbcd1111", + "111111111111111111cbbbbbccd11111", + "1111111111111111111cccccdd111111", + "11111111111111111111111111111111", + "11111111111111111111111111111111", + "b111111111111111111111111111111b", + ".bbbbbbbbbbbbbbbbbbbbbbbbbbbbbb." + ], + "sampleTeleportDuck": [ + ".111111111111111111111111111111.", + "11111111111111111111111111111111", + "11111111111111116111111111111111", + "11611111111111161611111111611111", + "11161111b11111116111116611611111", + "11116111111111511111111666111111", + "11161611111111111111511611111111", + "1111611111fff1111111666161111111", + "11161111ff555ff111161116111b1111", + "1111611f55fff55f1116111111b1b111", + "111111f55f111f55f1611115111b1111", + "111111f55f1f1f55f611111111111111", + "111111f55f111f55f111166661111111", + "1111fffff5fff555f111611116115111", + "111f44444f555555fffffff111611111", + "1111ffffff5555555555555f11611111", + "1111111f5555555555555555f1611111", + "1115116f555555554444455556111111", + "11111611f5555555555545556f666111", + "11116166f5555555555546665f111611", + "11111661f5555555556665555fd11161", + "1111611666666666665545555fd15161", + "111661111f555555544455555fd11611", + "1111166661f555555555555566666111", + "1111111116666666666666665f111611", + "111111111111ffff5555555ffd116111", + "1111111111111111fffffffdd1116111", + "1111116661111111ff44fd1111156111", + "111666111151111f44444fd111111611", + "1111161111111111fffffd1111111111", + "11111111111111111111111111111111", + "b111111111111111111111111111111b", + ".bbbbbbbbbbbbbbbbbbbbbbbbbbbbbb." + ], + "samplePetHamster": [ + ".999999999999999999999999999999.", + "99999999999999999999999999999999", + "99999999999999999999999999999999", + "99999999999999292999999119999999", + "99999999999992422299999999999999", + "99999999999992222299999999999999", + "99991199999999222999999999999999", + "99911119999999929999999999999999", + "99111111999999999999999999999999", + "9999999999fff99999fff99999119999", + "999999999fdddfffffdddf9991111999", + "999999999fd3ee444ee3df9911111199", + "999999999fdeddeeeddedf9999999999", + "999999999fed1fddd1fdef9999999999", + "99999999fdddffdddffdddf999999999", + "9999999fd333ddd2ddd333df99999999", + "9999999fd333dfdfdfd333df99999999", + "9999999fd333ddfffdd333df99999999", + "19999999fdddddddddddddf999999999", + "119999999fffdddddddfff9999999999", + "1111999999fffffffffff99999999911", + "999999999feeedddddeeef9999999999", + "999999999feeeedddeeeef9999999999", + "999999999ffddfeeefddff9999999999", + "777777777feffeeeeeffef6777777777", + "777771777feef44f44feef6717777177", + "7777777777fffffffffff67777777777", + "77717777777777777777777777717777", + "77777717777777777717777777151777", + "77777151777771777151777777717777", + "77777717777777777717777777777777", + "b777777777777777777777777777777b", + ".bbbbbbbbbbbbbbbbbbbbbbbbbbbbbb." + ], + "sampleHeadsOrTails": [ + ".111111111111111111111111111111.", + "111111111fff11111111111111111111", + "11111111f11111111111111111111111", + "1111111f11ff11111111111111111111", + "111111111f1111111111111111111111", + "11111111111111111111111111111111", + "11111111111116611111111111111111", + "11111111111169961111111111111111", + "11111111111169996111111111111111", + "11111111111116999611111111111111", + "11111111111111699611111111111111", + "11111111111111166111f1f111111111", + "11111111111111111111f1f111111111", + "1111111111111111111f11f111111111", + "111111111111111111111f1111111111", + "11111111111111111111f11111111111", + "11111111111111441111111111111111", + "11111111111114541111111111111111", + "11111111111114554411111111111111", + "11111111111114455444111111111111", + "11111111111111445554d11111111111", + "11111111114444445555411111111111", + "111111111145555445554d1111111111", + "1111111114445555545544d111111111", + "11111111145544455455544d11111111", + "111111111445555444555544d1111111", + "1111111111444555545555554d111111", + "11111111114544444455555554dd1111", + "1111111111455555545555555544d111", + "11111111111444444455555555554d11", + "11111111111455555455455555555411", + "b111111111114444444445555555554b", + ".bbbbbbbbbbbbbbbbbbbbbbbbbbbbbb." + ], + "sampleReactionTime": [ + ".ffffffffffffffffffff455555554f.", + "fffffffffffffffff1ff455555554fff", + "fffffffffff1fffff1ff45555554ffff", + "fffffffffff1f1fff1ff45555554ffff", + "fffff1fffff1f1f1f1ff4555554fffff", + "fffff1fffff1f1f1f1f45555554fffff", + "fffff1fffff1f1fff1f4555554ffffff", + "fffff1fffff1f1ffff45555554f1ffff", + "f1fff1fffff1fff4445555554ff1ffff", + "f1fff1fffff1ff45555555554ff1ffff", + "f1fff1fffffff455555555554ff1ffff", + "f1fff1ffffff455555555554fff1ff1f", + "f1fff1fffff4555555555554fff1ff1f", + "ff1fff1fff45455555555554fff1ff1f", + "ff1fff1ff45454555555554ffff1ff1f", + "ff1fff1ff44545455555554ffff1ff1f", + "ff1fff1ff4545454554554ffff1fff1f", + "ff1fff1ff445454554554fffff1fff1f", + "ff1fff1ff45454554454ffffff1ff1ff", + "ff1fff1ff4454554f44fffffff1ff1ff", + "ff1fff1ff454554fffffffffff1ff1ff", + "fff1ff1fff4444ffffffffffff1ff1ff", + "fff1ff1fffffffffffffffffff1ff1ff", + "fff1ffffffffffffffffffffff1ff1ff", + "fff1fffffffff4444444ffffff1fffff", + "ffffffffffff444444444fffffffffff", + "fffffffffffe444444444effffffffff", + "ddddddddddfe244444442efddddddddd", + "ddddddddddfee2222222eefddddddddd", + "dddddddddddfeeeeeeeeefdddddddddd", + "ddddddddddddfffffffffddddddddddd", + "bddddddddddddddddddddddddddddddb", + ".bbbbbbbbbbbbbbbbbbbbbbbbbbbbbb." + ], + "sampleHotPotato": [ + ".ffffffffffffffffffffffffffffff.", + "ffffffffffffffff5fffffffffffffff", + "ffffffffffffffff55ffffffffffffff", + "ffffffffff5f255f22ffffffffffffff", + "fffffff25f22f255f2ffffffffffffff", + "ffffff522ff22222522ff2ffffffffff", + "ffffff5525552542252252ff5f2fffff", + "ffffff24252555542252552f5522ffff", + "ffff4425455244455252252f55524fff", + "ffff444554422444444544525254ffff", + "fffff444554ddddddd4444525254ffff", + "ffffff54444dddedddd44442525fffff", + "ffffff5444dddddddeddd4424222ffff", + "fffff45544eddddddddddd42442fffff", + "ffffff4544eddeddddddddd44455ffff", + "ffffff4544eddddddeddddd44445ffff", + "ff54455454eddddddddddded4455ffff", + "fff54444444edddddddedddd445fffff", + "ffff5522544eeddddddddddd44ffffff", + "fffff5524444edddedddddddd4ffffff", + "ffffff555444eeddddddedded4ffffff", + "fffffffff5544edddddddddde4ffffff", + "ffffffffff554edddedddddd44ffffff", + "fffffffffff54eedddddeddd44ffffff", + "ffffffffffff44eddddddddd44ffffff", + "ffffffffffff44eedddddeee44ffffff", + "fffffffffffff44eeddeeee44fffffff", + "fffffffffffff444eeee44444fffffff", + "ffffffffffffff4444444444ffffffff", + "ffffffffffffffff44444fffffffffff", + "ffffffffffffffffffffffffffffffff", + "bffffffffffffffffffffffffffffffb", + ".bbbbbbbbbbbbbbbbbbbbbbbbbbbbbb." + ], + "sampleRailCrossingLight": [ + ".999999991999999999999999999999.", + "99999999999999199999999919999999", + "9999ccccc99999999999999999991999", + "999c44444c9999999991999991999999", + "99c4222224c999999999999999999991", + "99c4222224c999999999999999999999", + "99c4222224c999999999999999999999", + "99c4222224c999999999999999999999", + "99c4222224c999999999999999999999", + "999c44444c9999999999999999999999", + "9999ccccc9999999999999999992d999", + "99999bcb99999999999999999bbd2999", + "9999ccccc99999999999999bbdddb999", + "999c44444c999999999999b2ddbb9999", + "99c4888884c999999999bbdd2b999999", + "99c4888884c99999999b2ddb99999999", + "99c4888884c999999bbdd2b999999999", + "99c4888884c9999bb2ddb99999999999", + "99c4888884c999bddd2b999999999999", + "999c44444c99bbddbb99999999999999", + "9999ccccc99bdddb9999999999999999", + "99999bcbfbb2dbb99999999999999999", + "99999bcbbddd29999999999999999999", + "99999cbdddbb99999999999999999999", + "9999bbddbb9999999999999999999999", + "999b2ddb999999999999999999999999", + "999dd2bc999999999999999999999999", + "9999bccc999999999999999999999999", + "97999ccc999999999999999999999999", + "79979ccc999999999999999999999555", + "99799ccc999999999999999999999555", + "b7777ccceeeeeeeeeeeeeeeeeeeee554", + ".bbbbbbbbbbbbbbbbbbbbbbbbbbbb44." + ], + "settingsGear": [ + ". . . . . . . . . . . . . . . .", + ". . . . . . . d d . . . . . . .", + ". . . d d . d b b c . d d . . .", + ". . d b b c d b b c d b b c . .", + ". . d b b b b b b b b b b c . .", + ". . . c b d b c c b d b c . . .", + ". . d d b b c . . c b b d d . .", + ". d b b b c . . . . c b b b c .", + ". d b b b c . . . . c b b b c .", + ". . c c b b c . . c b b c c . .", + ". . . d b d b c c b d b c . . .", + ". . d b b b b b b b b b b c . .", + ". . d b b c c b b c c b b c . .", + ". . . c c . c b b c . c c . . .", + ". . . . . . . c c . . . . . . .", + ". . . . . . . . . . . . . . . ." + ], + "servo_power": [ + ". . . . . . . . . . . . . . . .", + ". . . 8 8 8 . . . . . 7 7 . . .", + ". . 8 8 8 8 8 . . . 7 7 7 7 . .", + ". . 8 8 8 8 8 . . . 7 7 7 7 . .", + ". . 8 8 8 8 8 . . . 7 7 7 7 . .", + ". . 8 8 8 8 8 . . . . . . . . .", + ". . 8 8 8 8 8 . . . f f f f . .", + ". . 8 b b b 8 . . . f f f f . .", + ". . 8 b c b b . . . f f f f . .", + ". . 8 b c c b . . . . f f . . .", + ". . 8 8 b b c b . . . . . . . .", + ". . 8 8 8 8 b c b . . . . . . .", + ". . 8 8 8 8 8 b c b . . . 5 5 5", + ". . 8 8 8 8 8 . b c b . . 5 5 5", + ". . . 8 8 8 . . . b . . . 5 5 4", + ". . . . . . . . . . . . . 4 4 ." + ], + "servo_set_angle": [ + ". . . . . . . . . . . . . . . .", + ". . . 8 8 8 . . . . 4 . . . . .", + ". . 8 8 8 8 8 . . . 2 . . . . .", + ". . 8 8 8 8 8 . . . 2 4 . . . .", + ". . 8 8 8 8 8 . . . . 2 . . . .", + ". . 8 8 8 8 8 . . . . 2 . . . .", + ". . 8 8 8 8 8 . . . . 2 . . . .", + ". . 8 b b b 8 . . 4 . 2 . 4 . .", + ". . 8 b c b b . . 2 4 2 4 2 . .", + ". . 8 b c c b . . . 2 2 2 . . .", + ". . 8 8 b b c b . . . 2 . . . .", + ". . 8 8 8 8 b c b . . . . . . .", + ". . 8 8 8 8 8 b c b . . . 5 5 5", + ". . 8 8 8 8 8 . b c b . . 5 5 5", + ". . . 8 8 8 . . . b c . . 5 5 4", + ". . . . . . . . . . . b . 4 4 ." + ], + "blocks1": [ + ". . . . . . . . . . . . . . . .", + ". . . . . . . . . . . . . . . .", + ". . . . . . . . . . . . . . . .", + ". . . . . . . . . . . . . . . .", + ". . . . . . . . . . . . . . . .", + ". . . . . . . . . . . . . . . .", + ". . . . . . 4 4 4 4 . . . . . .", + ". . . . . . 4 5 5 4 . . . . . .", + ". . . . . . 4 5 5 4 . . . . . .", + ". . . . . . 4 4 4 4 . . . . . .", + ". . . . . . . . . . . . . . . .", + ". . . . . . . . . . . . . . . .", + ". . . . . . . . . . . . . . . .", + ". . . . . . . . . . . . . . . .", + ". . . . . . . . . . . . . . . .", + ". . . . . . . . . . . . . . . ." + ], + "blocks2": [ + ". . . . . . . . . . . . . . . .", + ". . . . . . . . . . . . . . . .", + ". . . . . . . . . . . . . . . .", + ". . . . . . . . . . . . . . . .", + ". . . . . . . . . . . . . . . .", + ". . . . . . . . . . . . . . . .", + ". . . 4 4 4 4 . . 4 4 4 4 . . .", + ". . . 4 5 5 4 . . 4 5 5 4 . . .", + ". . . 4 5 5 4 . . 4 5 5 4 . . .", + ". . . 4 4 4 4 . . 4 4 4 4 . . .", + ". . . . . . . . . . . . . . . .", + ". . . . . . . . . . . . . . . .", + ". . . . . . . . . . . . . . . .", + ". . . . . . . . . . . . . . . .", + ". . . . . . . . . . . . . . . .", + ". . . . . . . . . . . . . . . ." + ], + "blocks3": [ + ". . . . . . . . . . . . . . . .", + ". . . . . . . . . . . . . . . .", + ". . . . . . . . . . . . . . . .", + ". . . . . . . . . . . . . . . .", + ". . . . . . . . . . . . . . . .", + ". . . . . . . . . . . . . . . .", + ". 4 4 4 4 . 4 4 4 4 . 4 4 4 4 .", + ". 4 5 5 4 . 4 5 5 4 . 4 5 5 4 .", + ". 4 5 5 4 . 4 5 5 4 . 4 5 5 4 .", + ". 4 4 4 4 . 4 4 4 4 . 4 4 4 4 .", + ". . . . . . . . . . . . . . . .", + ". . . . . . . . . . . . . . . .", + ". . . . . . . . . . . . . . . .", + ". . . . . . . . . . . . . . . .", + ". . . . . . . . . . . . . . . .", + ". . . . . . . . . . . . . . . ." + ], + "blocks4": [ + ". . . . . . . . . . . . . . . .", + ". . . . . . . . . . . . . . . .", + ". . . . . . . . . . . . . . . .", + ". . . 4 4 4 4 . . 4 4 4 4 . . .", + ". . . 4 5 5 4 . . 4 5 5 4 . . .", + ". . . 4 5 5 4 . . 4 5 5 4 . . .", + ". . . 4 4 4 4 . . 4 4 4 4 . . .", + ". . . . . . . . . . . . . . . .", + ". . . . . . . . . . . . . . . .", + ". . . 4 4 4 4 . . 4 4 4 4 . . .", + ". . . 4 5 5 4 . . 4 5 5 4 . . .", + ". . . 4 5 5 4 . . 4 5 5 4 . . .", + ". . . 4 4 4 4 . . 4 4 4 4 . . .", + ". . . . . . . . . . . . . . . .", + ". . . . . . . . . . . . . . . .", + ". . . . . . . . . . . . . . . ." + ], + "blocks5": [ + ". . . . . . . . . . . . . . . .", + ". . . . . . . . . . . . . . . .", + ". . . . . . . . . . . . . . . .", + ". . . 4 4 4 4 . 4 4 4 4 . . . .", + ". . . 4 5 5 4 . 4 5 5 4 . . . .", + ". . . 4 5 5 4 . 4 5 5 4 . . . .", + ". . . 4 4 4 4 . 4 4 4 4 . . . .", + ". . . . . . . . . . . . . . . .", + ". 4 4 4 4 . 4 4 4 4 . 4 4 4 4 .", + ". 4 5 5 4 . 4 5 5 4 . 4 5 5 4 .", + ". 4 5 5 4 . 4 5 5 4 . 4 5 5 4 .", + ". 4 4 4 4 . 4 4 4 4 . 4 4 4 4 .", + ". . . . . . . . . . . . . . . .", + ". . . . . . . . . . . . . . . .", + ". . . . . . . . . . . . . . . .", + ". . . . . . . . . . . . . . . ." + ], + "kita_slider": [ + ". . . . . . 6 6 6 6 6 . . . . .", + ". . . . . 6 6 6 f 6 6 6 . . . .", + ". . . . . 6 6 f f f 6 6 . . . .", + ". . . . . 6 6 f c f 6 6 . . . .", + ". . . . . 6 6 f c f 6 6 . . . .", + ". . . . . 6 6 f c f 6 6 . . . .", + ". . . . . 6 6 f c f 6 6 . . . .", + ". . . . . 6 9 9 9 9 9 6 . . . .", + ". . . . . 6 9 9 9 9 9 6 . . . .", + ". . . . . 6 6 f c f 6 6 . . . .", + ". . . . . 6 6 f c f 6 6 . . . .", + ". . . . . 6 6 f c f 6 6 . . . .", + ". . . . . 6 6 f c f 6 6 . 5 5 5", + ". . . . . 6 6 f f f 6 6 . 5 5 5", + ". . . . . 6 6 6 f 6 6 6 . 5 5 4", + ". . . . . . 6 6 6 6 6 . . 4 4 ." + ], + "reflected_light_sensor": [ + ". . . . . . . . . . . . . . . .", + ". . . . . . . . . . . . . . . .", + ". . f f f f f d d d d d . . . .", + ". . f f f f f d d d d d . . . .", + ". . f f f f f d d d d d . . . .", + ". . f 7 7 7 f d f f f d . . . .", + ". . f 7 7 7 f d f f f d . . . .", + ". . f 7 7 7 f d f f f d . . . .", + ". . f f f f f d d d d d . . . .", + ". . f f f f f d d d d d . . . .", + ". . f f f f f d d d d d . . . .", + ". . f f f f f d d d d d . . . .", + ". . f f f f f d d d d d . 5 5 5", + ". . f f f f f d d d d d . 5 5 5", + ". . . . . . . . . . . . . 5 5 4", + ". . . . . . . . . . . . . 4 4 ." + ], + "kita_key_1": [ + ". . . . . . . . . . . . . . . .", + ". . . . . . . . . . . . . . . .", + ". . . 6 6 6 6 6 6 6 6 . . . . .", + ". . 6 6 6 6 6 6 6 6 6 6 . . . .", + ". . 6 c f f f f f f c 6 . . f .", + ". . 6 f f c c c c f f 6 . f f .", + ". . 6 f c f f f f c f 6 . . f .", + ". . 6 f c f f f f c f 6 . . f .", + ". . 6 f c f f f f c f 6 . f f f", + ". . 6 f c f f f f c f 6 . . . .", + ". . 6 f f c c c c f f 6 . . . .", + ". . 6 c f f f f f f c 6 . . . .", + ". . 6 6 6 6 6 6 6 6 6 6 . 5 5 5", + ". . . 6 6 6 6 6 6 6 6 . . 5 5 5", + ". . . . . . . . . . . . . 5 5 4", + ". . . . . . . . . . . . . 4 4 ." + ], + "kita_key_2": [ + ". . . . . . . . . . . . . . . .", + ". . . . . . . . . . . . . . . .", + ". . . 6 6 6 6 6 6 6 6 . . . . .", + ". . 6 6 6 6 6 6 6 6 6 6 . . . .", + ". . 6 c f f f f f f c 6 . f f .", + ". . 6 f f c c c c f f 6 . . . f", + ". . 6 f c f f f f c f 6 . . f .", + ". . 6 f c f f f f c f 6 . f . .", + ". . 6 f c f f f f c f 6 . f f f", + ". . 6 f c f f f f c f 6 . . . .", + ". . 6 f f c c c c f f 6 . . . .", + ". . 6 c f f f f f f c 6 . . . .", + ". . 6 6 6 6 6 6 6 6 6 6 . 5 5 5", + ". . . 6 6 6 6 6 6 6 6 . . 5 5 5", + ". . . . . . . . . . . . . 5 5 4", + ". . . . . . . . . . . . . 4 4 ." + ], + "kita_rotary": [ + ". . . . . . . . . . . . . . . .", + ". . . . . . . . . . . . . . . .", + ". . . . 6 6 6 6 6 6 6 . . . . .", + ". . . 6 6 6 6 6 6 6 6 6 . . . .", + ". . 6 6 6 d d d d d 6 6 6 . . .", + ". . 6 6 d f f 1 f f d 6 6 . . .", + ". . 6 d f f f 1 f f f d 6 . . .", + ". . 6 d f f f 1 f f f d 6 . . .", + ". . 6 d f f f f f f f d 6 . . .", + ". . 6 d f f f f f f f d 6 . . .", + ". . 6 6 d f f f f f d 6 6 . . .", + ". . 6 6 6 d d d d d 6 6 6 . . .", + ". . . 6 6 6 6 6 6 6 6 6 . 5 5 5", + ". . . . 6 6 6 6 6 6 6 . . 5 5 5", + ". . . . . . . . . . . . . 5 5 4", + ". . . . . . . . . . . . . 4 4 ." + ], + "kita_rotary_left": [ + ". . . . . . . . . . . . . . . .", + ". . . . . . . . . . . . . . . .", + ". . . . . . . . . . . . . . . .", + ". . . . . . . . . . . . . . . .", + ". . . . . . 9 9 9 9 8 . . . . .", + ". . . . . 9 9 9 9 9 8 . . . . .", + ". . . . 9 9 9 8 . . . . . . . .", + ". . . . 9 9 8 . . . . . . . . .", + ". . . . 9 9 8 . . . . . . . . .", + ". . 9 9 9 9 9 9 8 . . . . . . .", + ". . . 9 9 9 9 8 . . . . . . . .", + ". . . . 9 9 8 . . . . . . . . .", + ". . . . . . . . . . . . . . . .", + ". . . . . . . . . . . . . . . .", + ". . . . . . . . . . . . . . . .", + ". . . . . . . . . . . . . . . ." + ], + "kita_rotary_right": [ + ". . . . . . . . . . . . . . . .", + ". . . . . . . . . . . . . . . .", + ". . . . . . . . . . . . . . . .", + ". . . . . . . . . . . . . . . .", + ". . . . . 8 9 9 9 9 . . . . . .", + ". . . . . 8 9 9 9 9 9 . . . . .", + ". . . . . . . . 8 9 9 9 . . . .", + ". . . . . . . . . 8 9 9 . . . .", + ". . . . . . . . . 8 9 9 . . . .", + ". . . . . . . 8 9 9 9 9 9 9 . .", + ". . . . . . . . 8 9 9 9 9 . . .", + ". . . . . . . . . 8 9 9 . . . .", + ". . . . . . . . . . . . . . . .", + ". . . . . . . . . . . . . . . .", + ". . . . . . . . . . . . . . . .", + ". . . . . . . . . . . . . . . ." + ], + "run": [ + ". . . . . . . . . . . . . . . .", + ". . . . . . . . . . . . . . . .", + ". c c c . . . . . . . . . . . .", + ". c 7 7 c c . . . . . . . . . .", + ". c 7 7 7 7 c c c . . . . . . .", + ". c 7 7 7 7 7 7 c c . . . . . .", + ". c 7 7 7 7 7 7 7 7 c c . . . .", + ". c 7 7 7 7 7 7 7 7 7 7 c c . .", + ". c 7 7 7 7 7 7 7 7 7 7 7 7 c .", + ". c 7 7 7 7 7 7 7 7 7 7 c c . .", + ". c 7 7 7 7 7 7 7 7 c c . . . .", + ". c 7 7 7 7 7 7 c c . . . . . .", + ". c 7 7 7 7 c c . . . . . . . .", + ". c 7 7 c c . . . . . . . . . .", + ". c c c . . . . . . . . . . . .", + ". . . . . . . . . . . . . . . ." + ], + "runDisabled": [ + ". . . . . . . . . . . . . . . .", + ". . . . . . . . . . . . . . . .", + ". c c c . . . . . . . . . . . .", + ". c b b c c . . . . . . . . . .", + ". c b b b b c c c . . . . . . .", + ". c b b b b b b c c . . . . . .", + ". c b b b b b b b b c c . . . .", + ". c b b b b b b b b b b c c . .", + ". c b b b b b b b b b b b b c .", + ". c b b b b b b b b b b c c . .", + ". c b b b b b b b b c c . . . .", + ". c b b b b b b c c . . . . . .", + ". c b b b b c c . . . . . . . .", + ". c b b c c . . . . . . . . . .", + ". c c c . . . . . . . . . . . .", + ". . . . . . . . . . . . . . . ." + ], + "stop": [ + ". . . . . . . . . . . . . . . .", + ". . . . . d d d d d d . . . . .", + ". . . . d 1 1 1 1 1 1 d . . . .", + ". . . d 1 2 2 2 2 2 2 1 d . . .", + ". . d 1 2 2 2 2 2 2 2 2 1 d . .", + ". d 1 2 2 2 2 2 2 2 2 2 2 1 d .", + ". d 1 2 2 2 2 2 2 2 2 2 2 1 d .", + ". d 1 2 2 1 1 1 1 1 1 2 2 1 d .", + ". d 1 2 2 1 1 1 1 1 1 2 2 1 d .", + ". d 1 2 2 2 2 2 2 2 2 2 2 1 d .", + ". d 1 2 2 2 2 2 2 2 2 2 2 1 d .", + ". . d 1 2 2 2 2 2 2 2 2 1 d . .", + ". . . d 1 2 2 2 2 2 2 1 d . . .", + ". . . . d 1 1 1 1 1 1 d . . . .", + ". . . . . d d d d d d . . . . .", + ". . . . . . . . . . . . . . . ." + ], + "stopDisabled": [ + ". . . . . . . . . . . . . . . .", + ". . . . . d d d d d d . . . . .", + ". . . . d c c c c c c d . . . .", + ". . . d c b b b b b b c d . . .", + ". . d c b b b b b b b b c d . .", + ". d c b b b b b b b b b b c d .", + ". d c b b b b b b b b b b c d .", + ". d c b b c c c c c c b b c d .", + ". d c b b c c c c c c b b c d .", + ". d c b b b b b b b b b b c d .", + ". d c b b b b b b b b b b c d .", + ". . d c b b b b b b b b c d . .", + ". . . d c b b b b b b c d . . .", + ". . . . d c c c c c c d . . . .", + ". . . . . d d d d d d . . . . .", + ". . . . . . . . . . . . . . . ." + ], + "soil_moisture": [ + ". . . . . . . . . . . . . . . .", + ". . . . 8 . . . . . . . . . . .", + ". . . . 9 8 . . . . . 8 . . . .", + ". . . . 9 8 . . . . . 9 8 . . .", + ". . . 9 9 9 8 . . . . 9 8 . . .", + ". . . 9 9 9 8 . . . 9 9 9 8 . .", + ". . 9 9 9 9 9 8 . . 9 9 9 8 . .", + ". . 9 9 9 9 9 8 . 9 9 9 9 9 8 .", + ". . 9 1 9 9 9 8 . 9 9 9 9 9 8 .", + ". . 9 9 1 9 9 8 . 9 1 9 9 9 8 .", + ". . e 9 9 9 8 e e 9 9 1 9 9 8 .", + ". e e e e e e e e e 9 9 9 8 . .", + ". b e e e e e e e e e e e 5 5 5", + ". . b e e e e e e e e e b 5 5 5", + ". . . b b b b b b b b b . 5 5 4", + ". . . . . . . . . . . . . 4 4 ." + ], + "distance_sensor": [ + ". . . . . . . . . . . . . . . .", + ". . . . . . . . . . . . . . . .", + ". . . 6 6 6 . . . . 6 6 6 . . .", + ". . 6 1 1 1 6 . . 6 1 1 1 6 . .", + ". 6 1 1 9 1 1 6 6 1 1 9 1 1 6 .", + ". 6 1 9 9 9 1 6 6 1 9 9 9 1 6 .", + ". 6 1 1 9 1 1 6 6 1 1 9 1 1 6 .", + ". . 6 1 1 1 6 . . 6 1 1 1 6 . .", + ". . . 6 6 6 . . . . 6 6 6 . . .", + ". . . . 2 . . . . . . 2 . . . .", + ". . . . 2 . . . . . 2 2 2 . . .", + ". . . . 2 . . . . 2 2 2 2 2 . .", + ". . 2 2 2 2 2 . . . . 2 . 5 5 5", + ". . . 2 2 2 . . . . . 2 . 5 5 5", + ". . . . 2 . . . . . . 2 . 5 5 4", + ". . . . . . . . . . . . . 4 4 ." + ], + "relay": [ + ". . . . . . . . . . . . . . . .", + ". . . . . f f f f f f . . . . .", + ". . . . f b b b b b b f . . . .", + ". . . f b b b b 9 8 b b f . . .", + ". . f b b b b 9 8 b b b b f . .", + ". . f b b b 9 8 b b b b b f . .", + ". . f b b 9 8 b b b 9 b b f . .", + ". 9 9 9 9 8 b b b b 8 9 9 9 9 .", + ". . f b b 9 b b b b 9 b b f . .", + ". . f b b b b b b b b b b f . .", + ". . f b b b b b b b b b b f . .", + ". . . f b b b b b b b b f . . .", + ". . . . f b b b b b b f . 5 5 5", + ". . . . . f f f f f f . . 5 5 5", + ". . . . . . . . . . . . . 5 5 4", + ". . . . . . . . . . . . . 4 4 ." + ], + "loud": [ + ". . . . . . . . . . . . . . . .", + ". 2 2 2 2 2 2 2 2 2 2 2 2 2 2 .", + ". 2 f f 2 2 2 2 2 2 f f f 2 2 .", + ". 2 f f 2 2 2 2 2 f f 2 f f 2 .", + ". 2 f f 2 2 2 2 2 f 2 2 2 f 2 .", + ". 2 f f 2 2 2 2 2 f f 2 f f 2 .", + ". 2 f f f f 2 2 2 2 f f f 2 2 .", + ". 2 2 2 2 2 2 2 2 2 2 2 2 2 2 .", + ". 2 2 2 2 2 2 2 2 2 2 2 2 2 2 .", + ". 2 f f 2 2 f 2 2 f f f f 2 2 .", + ". 2 f f 2 2 f 2 2 f f 2 2 f 2 .", + ". 2 f f 2 2 f 2 2 f f 2 2 f 2 .", + ". 2 f f 2 2 f 2 2 f f 2 2 f 2 .", + ". 2 2 f f f 2 2 2 f f f f 2 2 .", + ". 2 2 2 2 2 2 2 2 2 2 2 2 2 2 .", + ". . . . . . . . . . . . . . . ." + ], + "quiet": [ + "9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9", + "9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9", + "9 9 9 9 1 1 1 9 9 9 9 9 9 9 1 9", + "9 9 9 1 1 1 1 1 9 9 1 1 1 9 9 9", + "9 9 1 1 1 1 1 1 9 9 9 1 1 1 9 9", + "9 9 9 9 1 1 9 9 9 9 9 9 1 1 1 9", + "9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9", + "9 9 9 9 9 9 9 1 1 1 1 9 9 9 9 9", + "9 9 9 9 9 9 9 9 1 1 1 9 9 9 9 9", + "9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9", + "9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9", + "9 9 9 7 7 7 7 7 7 9 9 9 9 9 9 9", + "7 7 7 7 7 7 7 7 7 7 7 9 9 9 7 7", + "7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7", + "7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7", + "7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7" + ], + "decimalEditor": [ + ". . . . . . . . . . . . . . . .", + "2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2", + ". . . . . . . . . . . . . . . .", + ". . . . . . . . . . 4 4 4 . . .", + ". . . f . . f f f . . 4 . . . .", + ". . f f . . . . f . . 4 . . . .", + ". . . f . . . . f . . 4 . . . .", + ". . . f . . f f f . . 4 . . . .", + ". . . f . . f . . . . 4 . . . .", + ". . . f . . f . . . . 4 . . . .", + ". . f f f . f f f . . 4 . . . .", + ". . . . . . . . . . 4 4 4 . . .", + ". . . . . . . . . . . . . . . .", + "2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2", + ". . . . . . . . . . . . . . . .", + ". . . . . . . . . . . . . . . ." + ] +} \ No newline at end of file diff --git a/scripts/icon-map.json b/scripts/icon-map.json new file mode 100644 index 00000000..940dcc79 --- /dev/null +++ b/scripts/icon-map.json @@ -0,0 +1,135 @@ +{ + "tidMap": { + "10": "tile_start_page", + "11": "finger_press", + "12": "finger_release", + "13": "accelerometer", + "14": "tile_timer", + "15": "light_sensor", + "16": "thermometer", + "17": "radio_receive", + "18": "microphone", + "19": "cupXwritten", + "20": "cupYwritten", + "21": "cupZwritten", + "22": "magnet", + "23": "kita_slider", + "24": "kita_rotary", + "27": "led_light_sensor", + "28": "soil_moisture", + "29": "distance_sensor", + "30": "reflected_light_sensor", + "40": "tile_switch_page", + "41": "speakerFun", + "43": "music", + "44": "showScreen", + "45": "radio_send", + "46": "radio_set_group_small", + "47": "rgbLed", + "48": "cupXassign", + "49": "cupYassign", + "50": "cupZassign", + "51": "showNumber", + "53": "servo_set_angle", + "54": "relay", + "55": "servo_power", + "70": "tile_pin_0", + "71": "tile_pin_1", + "72": "tile_pin_2", + "73": "tile_button_a", + "74": "tile_button_b", + "75": "kita_key_1", + "76": "kita_key_2", + "77": "microbit_logo", + "83": "tile_timespan_short", + "84": "tile_timespan_long", + "85": "tile_timespan_random", + "86": "tile_timespan_fiveSeconds", + "87": "speakerFun", + "88": "speakerSoft", + "90": "moveShake", + "91": "moveTiltUp", + "92": "moveTiltDown", + "93": "moveTiltLeft", + "94": "moveTiltRight", + "95": "cupXread", + "96": "cupYread", + "97": "cupZread", + "98": "kita_rotary_left", + "99": "kita_rotary_right", + "100": "temp_warmer", + "101": "temp_colder", + "108": "moveFaceUp", + "109": "moveFaceDown", + "150": "tile_page_1", + "151": "tile_page_2", + "152": "tile_page_3", + "153": "tile_page_4", + "154": "tile_page_5", + "160": "iconEditor", + "163": "soundGiggle", + "164": "soundHappy", + "165": "soundHello", + "166": "soundMysterious", + "167": "soundSad", + "168": "soundSlide", + "169": "soundSoaring", + "170": "soundSpring", + "171": "soundTwinkle", + "172": "soundYawn", + "173": "cupXread", + "174": "cupYread", + "175": "cupZread", + "176": "radio_value", + "177": "diceToss", + "178": "loop", + "179": "melodyEditor", + "180": "thermometer", + "182": "tile_color_red", + "183": "tile_color_green", + "184": "tile_color_blue", + "185": "tile_color_magenta", + "186": "tile_color_yellow", + "187": "tile_color_black", + "188": "tile_rainbow", + "189": "tile_sparkle", + "206": "light_sensor", + "207": "magnet", + "208": "microphone", + "220": "eq", + "221": "neq", + "222": "lt", + "223": "lte", + "224": "gt", + "225": "gte", + "254": "decimalEditor", + "255": "decimalEditor" + }, + "nameMap": { + "delete": "btn_delete", + "plus": "btn_plus", + "when_insertion_point": "btn_when_insertion_point", + "do_insertion_point": "btn_do_insertion_point", + "rule_arrow": "rule_arrow", + "rule_handle": "rule_handle", + "rule_up": "temp_warmer", + "rule_down": "temp_colder", + "edit_program": "largeEditIcon", + "largeSettingsGear": "largeSettingsGear", + "new_program": "largeNewProgramIcon", + "MISSING": "MISSING", + "disk": "disk", + "disk1": "disk1", + "disk2": "disk2", + "disk3": "disk3", + "largeDisk": "largeDiskIcon", + "solid_red": "solid_red", + "led_off": "led_off", + "note_on": "note_on", + "note_off": "note_off", + "smiley_buttons": "sampleSmileyButtons", + "microbitLogo": "microbitLogo", + "microbit_logo": "microbit_logo", + "microbitLogoBtn": "microbit_logo_btn" + } +} \ No newline at end of file