Skip to content

Instantly share code, notes, and snippets.

@flowolf
Last active June 20, 2022 21:06
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save flowolf/5a9da750c091e846c3d2e442f5bdfb75 to your computer and use it in GitHub Desktop.
Save flowolf/5a9da750c091e846c3d2e442f5bdfb75 to your computer and use it in GitHub Desktop.
Homeassistant Samsung smart TV IR codes

Homeassistant IR codes for Samsung Smart TV

IR codes came from here

code was adapted from here

run:

python3 ir_codes.py ./samsung_tv_codes.csv

add the codes to you homeassistant/.storage/broadlink_...codes file.

in my case the file was named homeassistant/config/.storage/broadlink_remote_a04000000000_codes and looked like this:

{
    "version": 1,
    "minor_version": 1,
    "key": "broadlink_remote_a043b0b96870_codes",
    "data": {
        "tv": {
            "power_off": "JgBGAJSUEjcSNxI3EhISEhISEhISEhI3EjcSNxISEhISEhISEhISEhISEhISNxI3EhISEhI3EjcSNxI3EhISEhI3EjcSEhIABaQNBQ==",
            "power_on": "JgBGAJSUEjcSNxI3EhISEhISEhISEhI3EjcSNxISEhISEhISEhISNxISEhISNxI3EhISEhI3EhISNxI3EhISEhI3EjcSEhIABaQNBQ==",
            "menu": "JgBGAJSTEjgSOBI4EhMSExITEhMSExI4EjgSOBITEhMSExITEhMSExI4EhMSOBI4EhMSExITEjgSExI4EhMSExI4EjgSOBIABaQNBQ==",
            "arrow_down": "JgBGAJSTEjgSOBI4EhMSExITEhMSExI4EjgSOBITEhMSExITEhMSOBITEhMSExITEjgSOBITEhMSOBI4EjgSOBITEhMSOBIABaQNBQ==",
            "arrow_up": "JgBGAJSTEjgSOBI4EhMSExITEhMSExI4EjgSOBITEhMSExITEhMSOBI4EjgSOBI4EhMSOBITEhMSExITEhMSExI4EhMSOBIABaQNBQ==",
            "arrow_right": "JgBGAJSTEjgSOBI4EhMSExITEhMSExI4EjgSOBITEhMSExITEhMSExI4EhMSExITEjgSOBITEjgSExI4EjgSOBITEhMSOBIABaQNBQ==",
            "arrow_left": "JgBGAJSTEjgSOBI4EhMSExITEhMSExI4EjgSOBITEhMSExITEhMSOBITEjgSExITEjgSOBITEhMSOBITEjgSOBITEhMSOBIABaQNBQ==",
            "enter": "JgBGAJSTEjgSOBI4EhMSExITEhMSExI4EjgSOBITEhMSExITEhMSExITEhMSOBITEjgSOBITEjgSOBI4EhMSOBITEhMSOBIABaQNBQ==",
            "vol_up": "JgBGAJSTEjgSOBI4EhMSExITEhMSExI4EjgSOBITEhMSExITEhMSOBI4EjgSExITEhMSExITEhMSExITEjgSOBI4EjgSOBIABaQNBQ==",
            "vol_down": "JgBGAJSTEjgSOBI4EhMSExITEhMSExI4EjgSOBITEhMSExITEhMSOBI4EhMSOBITEhMSExITEhMSExI4EhMSOBI4EjgSOBIABaQNBQ==",
            "num_1": "JgBGAJSTEjgSOBI4EhMSExITEhMSExI4EjgSOBITEhMSExITEhMSExITEjgSExITEhMSExITEjgSOBITEjgSOBI4EjgSOBIABaQNBQ==",
            "num_2": "JgBGAJSTEjgSOBI4EhMSExITEhMSExI4EjgSOBITEhMSExITEhMSOBITEjgSExITEhMSExITEhMSOBITEjgSOBI4EjgSOBIABaQNBQ==",
            "num_3": "JgBGAJSTEjgSOBI4EhMSExITEhMSExI4EjgSOBITEhMSExITEhMSExI4EjgSExITEhMSExITEjgSExITEjgSOBI4EjgSOBIABaQNBQ==",
            "num_4": "JgBGAJSTEjgSOBI4EhMSExITEhMSExI4EjgSOBITEhMSExITEhMSExITEhMSOBITEhMSExITEjgSOBI4EhMSOBI4EjgSOBIABaQNBQ==",
            "num_5": "JgBGAJSTEjgSOBI4EhMSExITEhMSExI4EjgSOBITEhMSExITEhMSOBITEhMSOBITEhMSExITEhMSOBI4EhMSOBI4EjgSOBIABaQNBQ==",
            "num_6": "JgBGAJSTEjgSOBI4EhMSExITEhMSExI4EjgSOBITEhMSExITEhMSExI4EhMSOBITEhMSExITEjgSExI4EhMSOBI4EjgSOBIABaQNBQ==",
            "num_7": "JgBGAJSTEjgSOBI4EhMSExITEhMSExI4EjgSOBITEhMSExITEhMSExITEjgSOBITEhMSExITEjgSOBITEhMSOBI4EjgSOBIABaQNBQ==",
            "num_8": "JgBGAJSTEjgSOBI4EhMSExITEhMSExI4EjgSOBITEhMSExITEhMSOBITEjgSOBITEhMSExITEhMSOBITEhMSOBI4EjgSOBIABaQNBQ==",
            "num_9": "JgBGAJSTEjgSOBI4EhMSExITEhMSExI4EjgSOBITEhMSExITEhMSExI4EjgSOBITEhMSExITEjgSExITEhMSOBI4EjgSOBIABaQNBQ==",
            "num_0": "JgBGAJSTEjgSOBI4EhMSExITEhMSExI4EjgSOBITEhMSExITEhMSOBITEhMSExI4EhMSExITEhMSOBI4EjgSExI4EjgSOBIABaQNBQ==",
            "tv": "JgBGAJSTEjgSOBI4EhMSExITEhMSExI4EjgSOBITEhMSExITEhMSOBI4EhMSOBI4EhMSExITEhMSExI4EhMSExI4EjgSOBIABaQNBQ==",
            "exit": "JgBGAJSTEjgSOBI4EhMSExITEhMSExI4EjgSOBITEhMSExITEhMSOBITEjgSOBITEjgSExITEhMSOBITEhMSOBITEjgSOBIABaQNBQ==",
            "return": "JgBGAJSTEjgSOBI4EhMSExITEhMSExI4EjgSOBITEhMSExITEhMSExITEhMSOBI4EhMSOBITEjgSOBI4EhMSExI4EhMSOBIABaQNBQ==",
            "info": "JgBGAJSTEjgSOBI4EhMSExITEhMSExI4EjgSOBITEhMSExITEhMSOBI4EjgSOBI4EhMSExITEhMSExITEhMSExI4EjgSOBIABaQNBQ==",
            "content": "JgBGAJSTEjgSOBI4EhMSExITEhMSExI4EjgSOBITEhMSExITEhMSOBITEhMSOBI4EjgSOBITEhMSOBI4EhMSExITEhMSOBIABaQNBQ==",
            "media_play": "JgBGAJSTEjgSOBI4EhMSExITEhMSExI4EjgSOBITEhMSExITEhMSExITEjgSOBITEhMSExI4EjgSOBITEhMSOBI4EjgSExIABaQNBQ==",
            "hdmi1": "JgBGAJSUEjcSNxI3EhISEhISEhISEhI3EjcSNxISEhISEhISEhISNxISEhISNxISEjcSNxI3EhISNxI3EhISNxISEhISEhIABaQNBQ==",
            "hdmi2": "JgBGAJSUEjcSNxI3EhISEhISEhISEhI3EjcSNxISEhISEhISEhISEhI3EjcSNxI3EjcSEhI3EjcSEhISEhISEhISEjcSEhIABaQNBQ==",
            "hdmi3": "JgBGAJSUEjcSNxI3EhISEhISEhISEhI3EjcSNxISEhISEhISEhISEhI3EhISEhISEhISNxI3EjcSEhI3EjcSNxI3EhISEhIABaQNBQ==",
            "hdmi4": "JgBGAJSTEjgSOBI4EhMSExITEhMSExI4EjgSOBITEhMSExITEhMSOBITEjgSExITEhMSOBI4EhMSOBITEjgSOBI4EhMSExIABaQNBQ==",
            "video1": "JgBGAJSUEjcSNxI3EhISEhISEhISEhI3EjcSNxISEhISEhISEhISEhISEjcSEhISEhISEhI3EjcSNxISEjcSNxI3EjcSEhIABaQNBQ==",
            "video2": "JgBGAJSUEjcSNxI3EhISEhISEhISEhI3EjcSNxISEhISEhISEhISNxI3EhISNxISEjcSNxI3EhISEhI3EhISNxISEhISEhIABaQNBQ==",
            "video3": "JgBGAJSUEjcSNxI3EhISEhISEhISEhI3EjcSNxISEhISEhISEhISEhISEjcSNxISEjcSNxI3EjcSNxISEhISNxISEhISEhIABaQNBQ==",
            "svideo1": "JgBGAJSUEjcSNxI3EhISEhISEhISEhI3EjcSNxISEhISEhISEhISNxISEjcSEhISEhISEhI3EhISNxISEjcSNxI3EjcSEhIABaQNBQ==",
            "svideo2": "JgBGAJSUEjcSNxI3EhISEhISEhISEhI3EjcSNxISEhISEhISEhISNxISEjcSNxISEjcSNxI3EhISNxISEhISNxISEhISEhIABaQNBQ==",
            "svideo3": "JgBGAJSUEjcSNxI3EhISEhISEhISEhI3EjcSNxISEhISEhISEhISNxI3EhISNxI3EjcSNxI3EhISEhI3EhISEhISEhISEhIABaQNBQ==",
            "component1": "JgBGAJSUEjcSNxI3EhISEhISEhISEhI3EjcSNxISEhISEhISEhISEhI3EjcSEhISEhISEhI3EjcSEhISEjcSNxI3EjcSEhIABaQNBQ==",
            "component2": "JgBGAJSUEjcSNxI3EhISEhISEhISEhI3EjcSNxISEhISEhISEhISEhISEhISNxISEhISEhI3EjcSNxI3EhISNxI3EjcSEhIABaQNBQ==",
            "component3": "JgBGAJSUEjcSNxI3EhISEhISEhISEhI3EjcSNxISEhISEhISEhISEhISEhISNxISEjcSNxI3EjcSNxI3EhISNxISEhISEhIABaQNBQ==",
            "dvi1": "JgBGAJSUEjcSNxI3EhISEhISEhISEhI3EjcSNxISEhISEhISEhISEhI3EhISNxISEhISEhI3EjcSEhI3EhISNxI3EjcSEhIABaQNBQ==",
            "dvi2": "JgBGAJSUEjcSNxI3EhISEhISEhISEhI3EjcSNxISEhISEhISEhISEhI3EhISNxISEjcSNxI3EjcSEhI3EhISNxISEhISEhIABaQNBQ==",
            "vga1": "JgBGAJSUEjcSNxI3EhISEhISEhISEhI3EjcSNxISEhISEhISEhISNxISEhISNxISEjcSNxISEhISNxI3EhISNxISEhISNxIABaQNBQ==",
            "vga2": "JgBGAJSUEjcSNxI3EhISEhISEhISEhI3EjcSNxISEhISEhISEhISEhISEhISNxI3EhISNxI3EjcSNxI3EhISEhI3EhISEhIABaQNBQ=="
        },
        "z906":{
          "off": "JgBYAAABJJAUERU0FRAVDxQRFBEVDxUQFBEUERQQFRAUERQ1FBEUNRQRFBAVEBQRFBEUEBUQFDUVNBU1FDUUNRQ1FDUUNRUQFAAF2wABKEgUAAxNAAEqRRYADQU=",
          "on": "JgBYAAABJJAUERU0FRAVDxQRFBEVDxUQFBEUERQQFRAUERQ1FBEUNRQRFBAVEBQRFBEUEBUQFDUVNBU1FDUUNRQ1FDUUNRUQFAAF2wABKEgUAAxNAAEqRRYADQU=",
          "nextChannel": "JgVQAAABKJMSEhI3EhISEhISEhISEhISEhISEhISEhISEhI3EhISNxISEhISEhI3EhISEhISEhISNxI3EjcSEhI3EjcSNxI3EgAF0wABKEoSAAxWDQUAAAAAAAA=",
          "volumeDown": "JgBQAAABJY8WDxYzFg8WDhYPFg8WDxYOFg8WDxYOFg8WDxYzFg8WMxYPFjMWDxYzFg8WMxYzFg8WMxYOFjQWDhYzFg8WDxYzFgAF2QABKkYWAA0FAAAAAAAAAAA=",
          "volumeUp": "JgBQAAABIpIUERM2ExITEhMSExETEhMSExEUERMSExITERQ1FBETNhQRFDYTERM2ExITNhMSEzYTNhMSEzYTEhM2ExITNhMRFAAF3AABKEcVAA0FAAAAAAAAAAA=",
          "mute": "JgBQAAABI5EUERQ1FBEUERMRFBEUERQRFBAUERMSFBEUEBQ1FBEUNRQREzYUERQ1FBETNhM2FDUUNRQRFDUUERQ1FBETEhMRFAAF3AABKEcTAA0FAAAAAAAAAAA=",
          "input1": "JgVQAAABKJMSEhI3EhISEhISEhISEhISEhISEhISEhISEhI3EhISNxISEhISNxISEhISEhISEhISNxI3EhISNxI3EjcSNxI3EgAF0wABKEoSAAxWDQUAAAAAAAA=",
          "input2": "JgVQAAABKJMSEhI3EhISEhISEhISEhISEhISEhISEhISEhI3EhISNxISEjcSEhISEhISEhISEjcSNxISEjcSNxI3EjcSNxISEgAF0wABKEoSAAxWDQUAAAAAAAA=",
          "input3": "JgVQAAABKJMSEhI3EhISEhISEhISEhISEhISEhISEhISEhI3EhISNxISEhISNxI3EhISEhISEhISNxI3EhISEhI3EjcSNxI3EgAF0wABKEoSAAxWDQUAAAAAAAA=",
          "input4": "JgVQAAABKJMSEhI3EhISEhISEhISEhISEhISEhISEhISEhI3EhISNxISEhISNxI3EhISEhISEjcSNxI3EhISEhI3EjcSNxISEgAF0wABKEoSAAxWDQUAAAAAAAA=",
          "input5": "JgVQAAABKJMSEhI3EhISEhISEhISEhISEhISEhISEhISEhI3EhISNxISEjcSEhISEhISEhISEhISNxISEjcSNxI3EjcSNxI3EgAF0wABKEoSAAxWDQUAAAAAAAA=",
          "aux" : "JgVQAAABKJMSEhI3EhISEhISEhISEhISEhISEhISEhISEhI3EhISNxISEjcSEhISEhISEhI3EhISNxISEjcSNxI3EjcSEhI3EgAF0wABKEoSAAxWDQUAAAAAAAA="
        }
    }
}

the tv section is for a Samsung smart TV, z906 is for a Logitec z906 501 sound system.

import binascii
import struct
import base64
import csv
import json
def pronto2lirc(pronto):
codes = [int(binascii.hexlify(pronto[i:i+2]), 16) for i in range(0, len(pronto), 2)]
# print(codes)
if codes[0]:
raise ValueError('Pronto code should start with 0000')
if len(codes) != 4 + 2 * (codes[2] + codes[3]):
raise ValueError('Number of pulse widths does not match the preamble')
frequency = 1 / (codes[1] * 0.241246)
return [int(round(code / frequency)) for code in codes[4:]]
def lirc2broadlink(pulses):
array = bytearray()
for pulse in pulses:
# pulse = pulse * 269 / 8192 # 32.84ms units
pulse = int(pulse * 269 / 8192) # 32.84ms units
# print(pulse)
if pulse < 256:
array += bytearray(struct.pack('>B', pulse)) # big endian (1-byte)
else:
array += bytearray([0x00]) # indicate next number is 2-bytes
array += bytearray(struct.pack('>H', pulse)) # big endian (2-bytes)
packet = bytearray([0x26, 0x00]) # 0x26 = IR, 0x00 = no repeats
packet += bytearray(struct.pack('<H', len(array))) # little endian byte count
packet += array
packet += bytearray([0x0d, 0x05]) # IR terminator
# Add 0s to make ultimate packet size a multiple of 16 for 128-bit AES encryption.
remainder = (len(packet) + 4) % 16 # rm.send_data() adds 4-byte header (02 00 00 00)
if remainder:
packet += bytearray(16 - remainder)
return packet
def read_file(filename):
with open(filename) as csvfile:
codereader = csv.reader(csvfile, delimiter=',', quotechar='|')
codes = {}
for row in codereader:
name = row[0]
code = row[1]
pronto = bytearray.fromhex(code)
pulses = pronto2lirc(pronto)
packet = lirc2broadlink(pulses)
# print()
b64code = base64.b64encode(packet).decode("utf-8")
obj = {name: b64code}
print(f"{name}: {b64code}")
# print(json.dumps(obj))
codes[name] = b64code
print(json.dumps(codes))
if __name__ == '__main__':
import sys
if not sys.argv[1:]:
print('no args given - exiting')
sys.exit()
if 'csv' in sys.argv[1]:
print('csv file as argument')
read_file(sys.argv[1])
sys.exit()
else:
for code in sys.argv[1:]:
# print(code)
pronto = bytearray.fromhex(code)
pulses = pronto2lirc(pronto)
packet = lirc2broadlink(pulses)
# print()
# print(binascii.hexlify(packet))
print()
print(base64.b64encode(packet))
power_off 0000 006D 0000 0022 00AC 00AC 0015 0040 0015 0040 0015 0040 0015 0015 0015 0015 0015 0015 0015 0015 0015 0015 0015 0040 0015 0040 0015 0040 0015 0015 0015 0015 0015 0015 0015 0015 0015 0015 0015 0015 0015 0015 0015 0015 0015 0040 0015 0040 0015 0015 0015 0015 0015 0040 0015 0040 0015 0040 0015 0040 0015 0015 0015 0015 0015 0040 0015 0040 0015 0015 0015 0689
power_on 0000 006D 0000 0022 00AC 00AC 0015 0040 0015 0040 0015 0040 0015 0015 0015 0015 0015 0015 0015 0015 0015 0015 0015 0040 0015 0040 0015 0040 0015 0015 0015 0015 0015 0015 0015 0015 0015 0015 0015 0040 0015 0015 0015 0015 0015 0040 0015 0040 0015 0015 0015 0015 0015 0040 0015 0015 0015 0040 0015 0040 0015 0015 0015 0015 0015 0040 0015 0040 0015 0015 0015 0689
menu 0000 006D 0000 0022 00AC 00AB 0015 0041 0015 0041 0015 0041 0015 0016 0015 0016 0015 0016 0015 0016 0015 0016 0015 0041 0015 0041 0015 0041 0015 0016 0015 0016 0015 0016 0015 0016 0015 0016 0015 0016 0015 0041 0015 0016 0015 0041 0015 0041 0015 0016 0015 0016 0015 0016 0015 0041 0015 0016 0015 0041 0015 0016 0015 0016 0015 0041 0015 0041 0015 0041 0015 0689
arrow_down 0000 006D 0000 0022 00AC 00AB 0015 0041 0015 0041 0015 0041 0015 0016 0015 0016 0015 0016 0015 0016 0015 0016 0015 0041 0015 0041 0015 0041 0015 0016 0015 0016 0015 0016 0015 0016 0015 0016 0015 0041 0015 0016 0015 0016 0015 0016 0015 0016 0015 0041 0015 0041 0015 0016 0015 0016 0015 0041 0015 0041 0015 0041 0015 0041 0015 0016 0015 0016 0015 0041 0015 0689
arrow_up 0000 006D 0000 0022 00AC 00AB 0015 0041 0015 0041 0015 0041 0015 0016 0015 0016 0015 0016 0015 0016 0015 0016 0015 0041 0015 0041 0015 0041 0015 0016 0015 0016 0015 0016 0015 0016 0015 0016 0015 0041 0015 0041 0015 0041 0015 0041 0015 0041 0015 0016 0015 0041 0015 0016 0015 0016 0015 0016 0015 0016 0015 0016 0015 0016 0015 0041 0015 0016 0015 0041 0015 0689
arrow_right 0000 006D 0000 0022 00AC 00AB 0015 0041 0015 0041 0015 0041 0015 0016 0015 0016 0015 0016 0015 0016 0015 0016 0015 0041 0015 0041 0015 0041 0015 0016 0015 0016 0015 0016 0015 0016 0015 0016 0015 0016 0015 0041 0015 0016 0015 0016 0015 0016 0015 0041 0015 0041 0015 0016 0015 0041 0015 0016 0015 0041 0015 0041 0015 0041 0015 0016 0015 0016 0015 0041 0015 0689
arrow_left 0000 006D 0000 0022 00AC 00AB 0015 0041 0015 0041 0015 0041 0015 0016 0015 0016 0015 0016 0015 0016 0015 0016 0015 0041 0015 0041 0015 0041 0015 0016 0015 0016 0015 0016 0015 0016 0015 0016 0015 0041 0015 0016 0015 0041 0015 0016 0015 0016 0015 0041 0015 0041 0015 0016 0015 0016 0015 0041 0015 0016 0015 0041 0015 0041 0015 0016 0015 0016 0015 0041 0015 0689
enter 0000 006D 0000 0022 00AC 00AB 0015 0041 0015 0041 0015 0041 0015 0016 0015 0016 0015 0016 0015 0016 0015 0016 0015 0041 0015 0041 0015 0041 0015 0016 0015 0016 0015 0016 0015 0016 0015 0016 0015 0016 0015 0016 0015 0016 0015 0041 0015 0016 0015 0041 0015 0041 0015 0016 0015 0041 0015 0041 0015 0041 0015 0016 0015 0041 0015 0016 0015 0016 0015 0041 0015 0689
vol_up 0000 006D 0000 0022 00AC 00AB 0015 0041 0015 0041 0015 0041 0015 0016 0015 0016 0015 0016 0015 0016 0015 0016 0015 0041 0015 0041 0015 0041 0015 0016 0015 0016 0015 0016 0015 0016 0015 0016 0015 0041 0015 0041 0015 0041 0015 0016 0015 0016 0015 0016 0015 0016 0015 0016 0015 0016 0015 0016 0015 0016 0015 0041 0015 0041 0015 0041 0015 0041 0015 0041 0015 0689
vol_down 0000 006D 0000 0022 00AC 00AB 0015 0041 0015 0041 0015 0041 0015 0016 0015 0016 0015 0016 0015 0016 0015 0016 0015 0041 0015 0041 0015 0041 0015 0016 0015 0016 0015 0016 0015 0016 0015 0016 0015 0041 0015 0041 0015 0016 0015 0041 0015 0016 0015 0016 0015 0016 0015 0016 0015 0016 0015 0016 0015 0041 0015 0016 0015 0041 0015 0041 0015 0041 0015 0041 0015 0689
num_1 0000 006D 0000 0022 00AC 00AB 0015 0041 0015 0041 0015 0041 0015 0016 0015 0016 0015 0016 0015 0016 0015 0016 0015 0041 0015 0041 0015 0041 0015 0016 0015 0016 0015 0016 0015 0016 0015 0016 0015 0016 0015 0016 0015 0041 0015 0016 0015 0016 0015 0016 0015 0016 0015 0016 0015 0041 0015 0041 0015 0016 0015 0041 0015 0041 0015 0041 0015 0041 0015 0041 0015 0689
num_2 0000 006D 0000 0022 00AC 00AB 0015 0041 0015 0041 0015 0041 0015 0016 0015 0016 0015 0016 0015 0016 0015 0016 0015 0041 0015 0041 0015 0041 0015 0016 0015 0016 0015 0016 0015 0016 0015 0016 0015 0041 0015 0016 0015 0041 0015 0016 0015 0016 0015 0016 0015 0016 0015 0016 0015 0016 0015 0041 0015 0016 0015 0041 0015 0041 0015 0041 0015 0041 0015 0041 0015 0689
num_3 0000 006D 0000 0022 00AC 00AB 0015 0041 0015 0041 0015 0041 0015 0016 0015 0016 0015 0016 0015 0016 0015 0016 0015 0041 0015 0041 0015 0041 0015 0016 0015 0016 0015 0016 0015 0016 0015 0016 0015 0016 0015 0041 0015 0041 0015 0016 0015 0016 0015 0016 0015 0016 0015 0016 0015 0041 0015 0016 0015 0016 0015 0041 0015 0041 0015 0041 0015 0041 0015 0041 0015 0689
num_4 0000 006D 0000 0022 00AC 00AB 0015 0041 0015 0041 0015 0041 0015 0016 0015 0016 0015 0016 0015 0016 0015 0016 0015 0041 0015 0041 0015 0041 0015 0016 0015 0016 0015 0016 0015 0016 0015 0016 0015 0016 0015 0016 0015 0016 0015 0041 0015 0016 0015 0016 0015 0016 0015 0016 0015 0041 0015 0041 0015 0041 0015 0016 0015 0041 0015 0041 0015 0041 0015 0041 0015 0689
num_5 0000 006D 0000 0022 00AC 00AB 0015 0041 0015 0041 0015 0041 0015 0016 0015 0016 0015 0016 0015 0016 0015 0016 0015 0041 0015 0041 0015 0041 0015 0016 0015 0016 0015 0016 0015 0016 0015 0016 0015 0041 0015 0016 0015 0016 0015 0041 0015 0016 0015 0016 0015 0016 0015 0016 0015 0016 0015 0041 0015 0041 0015 0016 0015 0041 0015 0041 0015 0041 0015 0041 0015 0689
num_6 0000 006D 0000 0022 00AC 00AB 0015 0041 0015 0041 0015 0041 0015 0016 0015 0016 0015 0016 0015 0016 0015 0016 0015 0041 0015 0041 0015 0041 0015 0016 0015 0016 0015 0016 0015 0016 0015 0016 0015 0016 0015 0041 0015 0016 0015 0041 0015 0016 0015 0016 0015 0016 0015 0016 0015 0041 0015 0016 0015 0041 0015 0016 0015 0041 0015 0041 0015 0041 0015 0041 0015 0689
num_7 0000 006D 0000 0022 00AC 00AB 0015 0041 0015 0041 0015 0041 0015 0016 0015 0016 0015 0016 0015 0016 0015 0016 0015 0041 0015 0041 0015 0041 0015 0016 0015 0016 0015 0016 0015 0016 0015 0016 0015 0016 0015 0016 0015 0041 0015 0041 0015 0016 0015 0016 0015 0016 0015 0016 0015 0041 0015 0041 0015 0016 0015 0016 0015 0041 0015 0041 0015 0041 0015 0041 0015 0689
num_8 0000 006D 0000 0022 00AC 00AB 0015 0041 0015 0041 0015 0041 0015 0016 0015 0016 0015 0016 0015 0016 0015 0016 0015 0041 0015 0041 0015 0041 0015 0016 0015 0016 0015 0016 0015 0016 0015 0016 0015 0041 0015 0016 0015 0041 0015 0041 0015 0016 0015 0016 0015 0016 0015 0016 0015 0016 0015 0041 0015 0016 0015 0016 0015 0041 0015 0041 0015 0041 0015 0041 0015 0689
num_9 0000 006D 0000 0022 00AC 00AB 0015 0041 0015 0041 0015 0041 0015 0016 0015 0016 0015 0016 0015 0016 0015 0016 0015 0041 0015 0041 0015 0041 0015 0016 0015 0016 0015 0016 0015 0016 0015 0016 0015 0016 0015 0041 0015 0041 0015 0041 0015 0016 0015 0016 0015 0016 0015 0016 0015 0041 0015 0016 0015 0016 0015 0016 0015 0041 0015 0041 0015 0041 0015 0041 0015 0689
num_0 0000 006D 0000 0022 00AC 00AB 0015 0041 0015 0041 0015 0041 0015 0016 0015 0016 0015 0016 0015 0016 0015 0016 0015 0041 0015 0041 0015 0041 0015 0016 0015 0016 0015 0016 0015 0016 0015 0016 0015 0041 0015 0016 0015 0016 0015 0016 0015 0041 0015 0016 0015 0016 0015 0016 0015 0016 0015 0041 0015 0041 0015 0041 0015 0016 0015 0041 0015 0041 0015 0041 0015 0689
tv 0000 006D 0000 0022 00AC 00AB 0015 0041 0015 0041 0015 0041 0015 0016 0015 0016 0015 0016 0015 0016 0015 0016 0015 0041 0015 0041 0015 0041 0015 0016 0015 0016 0015 0016 0015 0016 0015 0016 0015 0041 0015 0041 0015 0016 0015 0041 0015 0041 0015 0016 0015 0016 0015 0016 0015 0016 0015 0016 0015 0041 0015 0016 0015 0016 0015 0041 0015 0041 0015 0041 0015 0689
exit 0000 006D 0000 0022 00AC 00AB 0015 0041 0015 0041 0015 0041 0015 0016 0015 0016 0015 0016 0015 0016 0015 0016 0015 0041 0015 0041 0015 0041 0015 0016 0015 0016 0015 0016 0015 0016 0015 0016 0015 0041 0015 0016 0015 0041 0015 0041 0015 0016 0015 0041 0015 0016 0015 0016 0015 0016 0015 0041 0015 0016 0015 0016 0015 0041 0015 0016 0015 0041 0015 0041 0015 0689
return 0000 006D 0000 0022 00AC 00AB 0015 0041 0015 0041 0015 0041 0015 0016 0015 0016 0015 0016 0015 0016 0015 0016 0015 0041 0015 0041 0015 0041 0015 0016 0015 0016 0015 0016 0015 0016 0015 0016 0015 0016 0015 0016 0015 0016 0015 0041 0015 0041 0015 0016 0015 0041 0015 0016 0015 0041 0015 0041 0015 0041 0015 0016 0015 0016 0015 0041 0015 0016 0015 0041 0015 0689
info 0000 006D 0000 0022 00AC 00AB 0015 0041 0015 0041 0015 0041 0015 0016 0015 0016 0015 0016 0015 0016 0015 0016 0015 0041 0015 0041 0015 0041 0015 0016 0015 0016 0015 0016 0015 0016 0015 0016 0015 0041 0015 0041 0015 0041 0015 0041 0015 0041 0015 0016 0015 0016 0015 0016 0015 0016 0015 0016 0015 0016 0015 0016 0015 0016 0015 0041 0015 0041 0015 0041 0015 0689
content 0000 006D 0000 0022 00AC 00AB 0015 0041 0015 0041 0015 0041 0015 0016 0015 0016 0015 0016 0015 0016 0015 0016 0015 0041 0015 0041 0015 0041 0015 0016 0015 0016 0015 0016 0015 0016 0015 0016 0015 0041 0015 0016 0015 0016 0015 0041 0015 0041 0015 0041 0015 0041 0015 0016 0015 0016 0015 0041 0015 0041 0015 0016 0015 0016 0015 0016 0015 0016 0015 0041 0015 0689
media_play 0000 006D 0000 0022 00AC 00AB 0015 0041 0015 0041 0015 0041 0015 0016 0015 0016 0015 0016 0015 0016 0015 0016 0015 0041 0015 0041 0015 0041 0015 0016 0015 0016 0015 0016 0015 0016 0015 0016 0015 0016 0015 0016 0015 0041 0015 0041 0015 0016 0015 0016 0015 0016 0015 0041 0015 0041 0015 0041 0015 0016 0015 0016 0015 0041 0015 0041 0015 0041 0015 0016 0015 0689
hdmi1 0000 006D 0000 0022 00AC 00AC 0015 0040 0015 0040 0015 0040 0015 0015 0015 0015 0015 0015 0015 0015 0015 0015 0015 0040 0015 0040 0015 0040 0015 0015 0015 0015 0015 0015 0015 0015 0015 0015 0015 0040 0015 0015 0015 0015 0015 0040 0015 0015 0015 0040 0015 0040 0015 0040 0015 0015 0015 0040 0015 0040 0015 0015 0015 0040 0015 0015 0015 0015 0015 0015 0015 0689
hdmi2 0000 006D 0000 0022 00AC 00AC 0015 0040 0015 0040 0015 0040 0015 0015 0015 0015 0015 0015 0015 0015 0015 0015 0015 0040 0015 0040 0015 0040 0015 0015 0015 0015 0015 0015 0015 0015 0015 0015 0015 0015 0015 0040 0015 0040 0015 0040 0015 0040 0015 0040 0015 0015 0015 0040 0015 0040 0015 0015 0015 0015 0015 0015 0015 0015 0015 0015 0015 0040 0015 0015 0015 0689
hdmi3 0000 006D 0000 0022 00AC 00AC 0015 0040 0015 0040 0015 0040 0015 0015 0015 0015 0015 0015 0015 0015 0015 0015 0015 0040 0015 0040 0015 0040 0015 0015 0015 0015 0015 0015 0015 0015 0015 0015 0015 0015 0015 0040 0015 0015 0015 0015 0015 0015 0015 0015 0015 0040 0015 0040 0015 0040 0015 0015 0015 0040 0015 0040 0015 0040 0015 0040 0015 0015 0015 0015 0015 0689
hdmi4 0000 006D 0000 0022 00AC 00AB 0015 0041 0015 0041 0015 0041 0015 0016 0015 0016 0015 0016 0015 0016 0015 0016 0015 0041 0015 0041 0015 0041 0015 0016 0015 0016 0015 0016 0015 0016 0015 0016 0015 0041 0015 0016 0015 0041 0015 0016 0015 0016 0015 0016 0015 0041 0015 0041 0015 0016 0015 0041 0015 0016 0015 0041 0015 0041 0015 0041 0015 0016 0015 0016 0015 0689
video1 0000 006D 0000 0022 00AC 00AC 0015 0040 0015 0040 0015 0040 0015 0015 0015 0015 0015 0015 0015 0015 0015 0015 0015 0040 0015 0040 0015 0040 0015 0015 0015 0015 0015 0015 0015 0015 0015 0015 0015 0015 0015 0015 0015 0040 0015 0015 0015 0015 0015 0015 0015 0015 0015 0040 0015 0040 0015 0040 0015 0015 0015 0040 0015 0040 0015 0040 0015 0040 0015 0015 0015 0689
video2 0000 006D 0000 0022 00AC 00AC 0015 0040 0015 0040 0015 0040 0015 0015 0015 0015 0015 0015 0015 0015 0015 0015 0015 0040 0015 0040 0015 0040 0015 0015 0015 0015 0015 0015 0015 0015 0015 0015 0015 0040 0015 0040 0015 0015 0015 0040 0015 0015 0015 0040 0015 0040 0015 0040 0015 0015 0015 0015 0015 0040 0015 0015 0015 0040 0015 0015 0015 0015 0015 0015 0015 0689
video3 0000 006D 0000 0022 00AC 00AC 0015 0040 0015 0040 0015 0040 0015 0015 0015 0015 0015 0015 0015 0015 0015 0015 0015 0040 0015 0040 0015 0040 0015 0015 0015 0015 0015 0015 0015 0015 0015 0015 0015 0015 0015 0015 0015 0040 0015 0040 0015 0015 0015 0040 0015 0040 0015 0040 0015 0040 0015 0040 0015 0015 0015 0015 0015 0040 0015 0015 0015 0015 0015 0015 0015 0689
svideo1 0000 006D 0000 0022 00AC 00AC 0015 0040 0015 0040 0015 0040 0015 0015 0015 0015 0015 0015 0015 0015 0015 0015 0015 0040 0015 0040 0015 0040 0015 0015 0015 0015 0015 0015 0015 0015 0015 0015 0015 0040 0015 0015 0015 0040 0015 0015 0015 0015 0015 0015 0015 0015 0015 0040 0015 0015 0015 0040 0015 0015 0015 0040 0015 0040 0015 0040 0015 0040 0015 0015 0015 0689
svideo2 0000 006D 0000 0022 00AC 00AC 0015 0040 0015 0040 0015 0040 0015 0015 0015 0015 0015 0015 0015 0015 0015 0015 0015 0040 0015 0040 0015 0040 0015 0015 0015 0015 0015 0015 0015 0015 0015 0015 0015 0040 0015 0015 0015 0040 0015 0040 0015 0015 0015 0040 0015 0040 0015 0040 0015 0015 0015 0040 0015 0015 0015 0015 0015 0040 0015 0015 0015 0015 0015 0015 0015 0689
svideo3 0000 006D 0000 0022 00AC 00AC 0015 0040 0015 0040 0015 0040 0015 0015 0015 0015 0015 0015 0015 0015 0015 0015 0015 0040 0015 0040 0015 0040 0015 0015 0015 0015 0015 0015 0015 0015 0015 0015 0015 0040 0015 0040 0015 0015 0015 0040 0015 0040 0015 0040 0015 0040 0015 0040 0015 0015 0015 0015 0015 0040 0015 0015 0015 0015 0015 0015 0015 0015 0015 0015 0015 0689
component1 0000 006D 0000 0022 00AC 00AC 0015 0040 0015 0040 0015 0040 0015 0015 0015 0015 0015 0015 0015 0015 0015 0015 0015 0040 0015 0040 0015 0040 0015 0015 0015 0015 0015 0015 0015 0015 0015 0015 0015 0015 0015 0040 0015 0040 0015 0015 0015 0015 0015 0015 0015 0015 0015 0040 0015 0040 0015 0015 0015 0015 0015 0040 0015 0040 0015 0040 0015 0040 0015 0015 0015 0689
component2 0000 006D 0000 0022 00AC 00AC 0015 0040 0015 0040 0015 0040 0015 0015 0015 0015 0015 0015 0015 0015 0015 0015 0015 0040 0015 0040 0015 0040 0015 0015 0015 0015 0015 0015 0015 0015 0015 0015 0015 0015 0015 0015 0015 0015 0015 0040 0015 0015 0015 0015 0015 0015 0015 0040 0015 0040 0015 0040 0015 0040 0015 0015 0015 0040 0015 0040 0015 0040 0015 0015 0015 0689
component3 0000 006D 0000 0022 00AC 00AC 0015 0040 0015 0040 0015 0040 0015 0015 0015 0015 0015 0015 0015 0015 0015 0015 0015 0040 0015 0040 0015 0040 0015 0015 0015 0015 0015 0015 0015 0015 0015 0015 0015 0015 0015 0015 0015 0015 0015 0040 0015 0015 0015 0040 0015 0040 0015 0040 0015 0040 0015 0040 0015 0040 0015 0015 0015 0040 0015 0015 0015 0015 0015 0015 0015 0689
dvi1 0000 006D 0000 0022 00AC 00AC 0015 0040 0015 0040 0015 0040 0015 0015 0015 0015 0015 0015 0015 0015 0015 0015 0015 0040 0015 0040 0015 0040 0015 0015 0015 0015 0015 0015 0015 0015 0015 0015 0015 0015 0015 0040 0015 0015 0015 0040 0015 0015 0015 0015 0015 0015 0015 0040 0015 0040 0015 0015 0015 0040 0015 0015 0015 0040 0015 0040 0015 0040 0015 0015 0015 0689
dvi2 0000 006D 0000 0022 00AC 00AC 0015 0040 0015 0040 0015 0040 0015 0015 0015 0015 0015 0015 0015 0015 0015 0015 0015 0040 0015 0040 0015 0040 0015 0015 0015 0015 0015 0015 0015 0015 0015 0015 0015 0015 0015 0040 0015 0015 0015 0040 0015 0015 0015 0040 0015 0040 0015 0040 0015 0040 0015 0015 0015 0040 0015 0015 0015 0040 0015 0015 0015 0015 0015 0015 0015 0689
vga1 0000 006D 0000 0022 00AC 00AC 0015 0040 0015 0040 0015 0040 0015 0015 0015 0015 0015 0015 0015 0015 0015 0015 0015 0040 0015 0040 0015 0040 0015 0015 0015 0015 0015 0015 0015 0015 0015 0015 0015 0040 0015 0015 0015 0015 0015 0040 0015 0015 0015 0040 0015 0040 0015 0015 0015 0015 0015 0040 0015 0040 0015 0015 0015 0040 0015 0015 0015 0015 0015 0040 0015 0689
vga2 0000 006D 0000 0022 00AC 00AC 0015 0040 0015 0040 0015 0040 0015 0015 0015 0015 0015 0015 0015 0015 0015 0015 0015 0040 0015 0040 0015 0040 0015 0015 0015 0015 0015 0015 0015 0015 0015 0015 0015 0015 0015 0015 0015 0015 0015 0040 0015 0040 0015 0015 0015 0040 0015 0040 0015 0040 0015 0040 0015 0040 0015 0015 0015 0015 0015 0040 0015 0015 0015 0015 0015 0689
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment