function dec_to_hex {
    if [ "$1" -eq 0 ]; then
        set result=00
    elif [ "$1" -eq 1 ]; then
        set result=01
    elif [ "$1" -eq 2 ]; then
        set result=02
    elif [ "$1" -eq 3 ]; then
        set result=03
    elif [ "$1" -eq 4 ]; then
        set result=04
    elif [ "$1" -eq 5 ]; then
        set result=05
    elif [ "$1" -eq 6 ]; then
        set result=06
    elif [ "$1" -eq 7 ]; then
        set result=07
    elif [ "$1" -eq 8 ]; then
        set result=08
    elif [ "$1" -eq 9 ]; then
        set result=09
    elif [ "$1" -eq 10 ]; then
        set result=0A
    elif [ "$1" -eq 11 ]; then
        set result=0B
    elif [ "$1" -eq 12 ]; then
        set result=0C
    elif [ "$1" -eq 13 ]; then
        set result=0D
    elif [ "$1" -eq 14 ]; then
        set result=0E
    elif [ "$1" -eq 15 ]; then
        set result=0F
    elif [ "$1" -eq 16 ]; then
        set result=10
    elif [ "$1" -eq 17 ]; then
        set result=11
    elif [ "$1" -eq 18 ]; then
        set result=12
    elif [ "$1" -eq 19 ]; then
        set result=13
    elif [ "$1" -eq 20 ]; then
        set result=14
    elif [ "$1" -eq 21 ]; then
        set result=15
    elif [ "$1" -eq 22 ]; then
        set result=16
    elif [ "$1" -eq 23 ]; then
        set result=17
    elif [ "$1" -eq 24 ]; then
        set result=18
    elif [ "$1" -eq 25 ]; then
        set result=19
    elif [ "$1" -eq 26 ]; then
        set result=1A
    elif [ "$1" -eq 27 ]; then
        set result=1B
    elif [ "$1" -eq 28 ]; then
        set result=1C
    elif [ "$1" -eq 29 ]; then
        set result=1D
    elif [ "$1" -eq 30 ]; then
        set result=1E
    elif [ "$1" -eq 31 ]; then
        set result=1F
    elif [ "$1" -eq 32 ]; then
        set result=20
    elif [ "$1" -eq 33 ]; then
        set result=21
    elif [ "$1" -eq 34 ]; then
        set result=22
    elif [ "$1" -eq 35 ]; then
        set result=23
    elif [ "$1" -eq 36 ]; then
        set result=24
    elif [ "$1" -eq 37 ]; then
        set result=25
    elif [ "$1" -eq 38 ]; then
        set result=26
    elif [ "$1" -eq 39 ]; then
        set result=27
    elif [ "$1" -eq 40 ]; then
        set result=28
    elif [ "$1" -eq 41 ]; then
        set result=29
    elif [ "$1" -eq 42 ]; then
        set result=2A
    elif [ "$1" -eq 43 ]; then
        set result=2B
    elif [ "$1" -eq 44 ]; then
        set result=2C
    elif [ "$1" -eq 45 ]; then
        set result=2D
    elif [ "$1" -eq 46 ]; then
        set result=2E
    elif [ "$1" -eq 47 ]; then
        set result=2F
    elif [ "$1" -eq 48 ]; then
        set result=30
    elif [ "$1" -eq 49 ]; then
        set result=31
    elif [ "$1" -eq 50 ]; then
        set result=32
    elif [ "$1" -eq 51 ]; then
        set result=33
    elif [ "$1" -eq 52 ]; then
        set result=34
    elif [ "$1" -eq 53 ]; then
        set result=35
    elif [ "$1" -eq 54 ]; then
        set result=36
    elif [ "$1" -eq 55 ]; then
        set result=37
    elif [ "$1" -eq 56 ]; then
        set result=38
    elif [ "$1" -eq 57 ]; then
        set result=39
    elif [ "$1" -eq 58 ]; then
        set result=3A
    elif [ "$1" -eq 59 ]; then
        set result=3B
    elif [ "$1" -eq 60 ]; then
        set result=3C
    elif [ "$1" -eq 61 ]; then
        set result=3D
    elif [ "$1" -eq 62 ]; then
        set result=3E
    elif [ "$1" -eq 63 ]; then
        set result=3F
    elif [ "$1" -eq 64 ]; then
        set result=40
    elif [ "$1" -eq 65 ]; then
        set result=41
    elif [ "$1" -eq 66 ]; then
        set result=42
    elif [ "$1" -eq 67 ]; then
        set result=43
    elif [ "$1" -eq 68 ]; then
        set result=44
    elif [ "$1" -eq 69 ]; then
        set result=45
    elif [ "$1" -eq 70 ]; then
        set result=46
    elif [ "$1" -eq 71 ]; then
        set result=47
    elif [ "$1" -eq 72 ]; then
        set result=48
    elif [ "$1" -eq 73 ]; then
        set result=49
    elif [ "$1" -eq 74 ]; then
        set result=4A
    elif [ "$1" -eq 75 ]; then
        set result=4B
    elif [ "$1" -eq 76 ]; then
        set result=4C
    elif [ "$1" -eq 77 ]; then
        set result=4D
    elif [ "$1" -eq 78 ]; then
        set result=4E
    elif [ "$1" -eq 79 ]; then
        set result=4F
    elif [ "$1" -eq 80 ]; then
        set result=50
    elif [ "$1" -eq 81 ]; then
        set result=51
    elif [ "$1" -eq 82 ]; then
        set result=52
    elif [ "$1" -eq 83 ]; then
        set result=53
    elif [ "$1" -eq 84 ]; then
        set result=54
    elif [ "$1" -eq 85 ]; then
        set result=55
    elif [ "$1" -eq 86 ]; then
        set result=56
    elif [ "$1" -eq 87 ]; then
        set result=57
    elif [ "$1" -eq 88 ]; then
        set result=58
    elif [ "$1" -eq 89 ]; then
        set result=59
    elif [ "$1" -eq 90 ]; then
        set result=5A
    elif [ "$1" -eq 91 ]; then
        set result=5B
    elif [ "$1" -eq 92 ]; then
        set result=5C
    elif [ "$1" -eq 93 ]; then
        set result=5D
    elif [ "$1" -eq 94 ]; then
        set result=5E
    elif [ "$1" -eq 95 ]; then
        set result=5F
    elif [ "$1" -eq 96 ]; then
        set result=60
    elif [ "$1" -eq 97 ]; then
        set result=61
    elif [ "$1" -eq 98 ]; then
        set result=62
    elif [ "$1" -eq 99 ]; then
        set result=63
    elif [ "$1" -eq 100 ]; then
        set result=64
    elif [ "$1" -eq 101 ]; then
        set result=65
    elif [ "$1" -eq 102 ]; then
        set result=66
    elif [ "$1" -eq 103 ]; then
        set result=67
    elif [ "$1" -eq 104 ]; then
        set result=68
    elif [ "$1" -eq 105 ]; then
        set result=69
    elif [ "$1" -eq 106 ]; then
        set result=6A
    elif [ "$1" -eq 107 ]; then
        set result=6B
    elif [ "$1" -eq 108 ]; then
        set result=6C
    elif [ "$1" -eq 109 ]; then
        set result=6D
    elif [ "$1" -eq 110 ]; then
        set result=6E
    elif [ "$1" -eq 111 ]; then
        set result=6F
    elif [ "$1" -eq 112 ]; then
        set result=70
    elif [ "$1" -eq 113 ]; then
        set result=71
    elif [ "$1" -eq 114 ]; then
        set result=72
    elif [ "$1" -eq 115 ]; then
        set result=73
    elif [ "$1" -eq 116 ]; then
        set result=74
    elif [ "$1" -eq 117 ]; then
        set result=75
    elif [ "$1" -eq 118 ]; then
        set result=76
    elif [ "$1" -eq 119 ]; then
        set result=77
    elif [ "$1" -eq 120 ]; then
        set result=78
    elif [ "$1" -eq 121 ]; then
        set result=79
    elif [ "$1" -eq 122 ]; then
        set result=7A
    elif [ "$1" -eq 123 ]; then
        set result=7B
    elif [ "$1" -eq 124 ]; then
        set result=7C
    elif [ "$1" -eq 125 ]; then
        set result=7D
    elif [ "$1" -eq 126 ]; then
        set result=7E
    elif [ "$1" -eq 127 ]; then
        set result=7F
    elif [ "$1" -eq 128 ]; then
        set result=80
    elif [ "$1" -eq 129 ]; then
        set result=81
    elif [ "$1" -eq 130 ]; then
        set result=82
    elif [ "$1" -eq 131 ]; then
        set result=83
    elif [ "$1" -eq 132 ]; then
        set result=84
    elif [ "$1" -eq 133 ]; then
        set result=85
    elif [ "$1" -eq 134 ]; then
        set result=86
    elif [ "$1" -eq 135 ]; then
        set result=87
    elif [ "$1" -eq 136 ]; then
        set result=88
    elif [ "$1" -eq 137 ]; then
        set result=89
    elif [ "$1" -eq 138 ]; then
        set result=8A
    elif [ "$1" -eq 139 ]; then
        set result=8B
    elif [ "$1" -eq 140 ]; then
        set result=8C
    elif [ "$1" -eq 141 ]; then
        set result=8D
    elif [ "$1" -eq 142 ]; then
        set result=8E
    elif [ "$1" -eq 143 ]; then
        set result=8F
    elif [ "$1" -eq 144 ]; then
        set result=90
    elif [ "$1" -eq 145 ]; then
        set result=91
    elif [ "$1" -eq 146 ]; then
        set result=92
    elif [ "$1" -eq 147 ]; then
        set result=93
    elif [ "$1" -eq 148 ]; then
        set result=94
    elif [ "$1" -eq 149 ]; then
        set result=95
    elif [ "$1" -eq 150 ]; then
        set result=96
    elif [ "$1" -eq 151 ]; then
        set result=97
    elif [ "$1" -eq 152 ]; then
        set result=98
    elif [ "$1" -eq 153 ]; then
        set result=99
    elif [ "$1" -eq 154 ]; then
        set result=9A
    elif [ "$1" -eq 155 ]; then
        set result=9B
    elif [ "$1" -eq 156 ]; then
        set result=9C
    elif [ "$1" -eq 157 ]; then
        set result=9D
    elif [ "$1" -eq 158 ]; then
        set result=9E
    elif [ "$1" -eq 159 ]; then
        set result=9F
    elif [ "$1" -eq 160 ]; then
        set result=A0
    elif [ "$1" -eq 161 ]; then
        set result=A1
    elif [ "$1" -eq 162 ]; then
        set result=A2
    elif [ "$1" -eq 163 ]; then
        set result=A3
    elif [ "$1" -eq 164 ]; then
        set result=A4
    elif [ "$1" -eq 165 ]; then
        set result=A5
    elif [ "$1" -eq 166 ]; then
        set result=A6
    elif [ "$1" -eq 167 ]; then
        set result=A7
    elif [ "$1" -eq 168 ]; then
        set result=A8
    elif [ "$1" -eq 169 ]; then
        set result=A9
    elif [ "$1" -eq 170 ]; then
        set result=AA
    elif [ "$1" -eq 171 ]; then
        set result=AB
    elif [ "$1" -eq 172 ]; then
        set result=AC
    elif [ "$1" -eq 173 ]; then
        set result=AD
    elif [ "$1" -eq 174 ]; then
        set result=AE
    elif [ "$1" -eq 175 ]; then
        set result=AF
    elif [ "$1" -eq 176 ]; then
        set result=B0
    elif [ "$1" -eq 177 ]; then
        set result=B1
    elif [ "$1" -eq 178 ]; then
        set result=B2
    elif [ "$1" -eq 179 ]; then
        set result=B3
    elif [ "$1" -eq 180 ]; then
        set result=B4
    elif [ "$1" -eq 181 ]; then
        set result=B5
    elif [ "$1" -eq 182 ]; then
        set result=B6
    elif [ "$1" -eq 183 ]; then
        set result=B7
    elif [ "$1" -eq 184 ]; then
        set result=B8
    elif [ "$1" -eq 185 ]; then
        set result=B9
    elif [ "$1" -eq 186 ]; then
        set result=BA
    elif [ "$1" -eq 187 ]; then
        set result=BB
    elif [ "$1" -eq 188 ]; then
        set result=BC
    elif [ "$1" -eq 189 ]; then
        set result=BD
    elif [ "$1" -eq 190 ]; then
        set result=BE
    elif [ "$1" -eq 191 ]; then
        set result=BF
    elif [ "$1" -eq 192 ]; then
        set result=C0
    elif [ "$1" -eq 193 ]; then
        set result=C1
    elif [ "$1" -eq 194 ]; then
        set result=C2
    elif [ "$1" -eq 195 ]; then
        set result=C3
    elif [ "$1" -eq 196 ]; then
        set result=C4
    elif [ "$1" -eq 197 ]; then
        set result=C5
    elif [ "$1" -eq 198 ]; then
        set result=C6
    elif [ "$1" -eq 199 ]; then
        set result=C7
    elif [ "$1" -eq 200 ]; then
        set result=C8
    elif [ "$1" -eq 201 ]; then
        set result=C9
    elif [ "$1" -eq 202 ]; then
        set result=CA
    elif [ "$1" -eq 203 ]; then
        set result=CB
    elif [ "$1" -eq 204 ]; then
        set result=CC
    elif [ "$1" -eq 205 ]; then
        set result=CD
    elif [ "$1" -eq 206 ]; then
        set result=CE
    elif [ "$1" -eq 207 ]; then
        set result=CF
    elif [ "$1" -eq 208 ]; then
        set result=D0
    elif [ "$1" -eq 209 ]; then
        set result=D1
    elif [ "$1" -eq 210 ]; then
        set result=D2
    elif [ "$1" -eq 211 ]; then
        set result=D3
    elif [ "$1" -eq 212 ]; then
        set result=D4
    elif [ "$1" -eq 213 ]; then
        set result=D5
    elif [ "$1" -eq 214 ]; then
        set result=D6
    elif [ "$1" -eq 215 ]; then
        set result=D7
    elif [ "$1" -eq 216 ]; then
        set result=D8
    elif [ "$1" -eq 217 ]; then
        set result=D9
    elif [ "$1" -eq 218 ]; then
        set result=DA
    elif [ "$1" -eq 219 ]; then
        set result=DB
    elif [ "$1" -eq 220 ]; then
        set result=DC
    elif [ "$1" -eq 221 ]; then
        set result=DD
    elif [ "$1" -eq 222 ]; then
        set result=DE
    elif [ "$1" -eq 223 ]; then
        set result=DF
    elif [ "$1" -eq 224 ]; then
        set result=E0
    elif [ "$1" -eq 225 ]; then
        set result=E1
    elif [ "$1" -eq 226 ]; then
        set result=E2
    elif [ "$1" -eq 227 ]; then
        set result=E3
    elif [ "$1" -eq 228 ]; then
        set result=E4
    elif [ "$1" -eq 229 ]; then
        set result=E5
    elif [ "$1" -eq 230 ]; then
        set result=E6
    elif [ "$1" -eq 231 ]; then
        set result=E7
    elif [ "$1" -eq 232 ]; then
        set result=E8
    elif [ "$1" -eq 233 ]; then
        set result=E9
    elif [ "$1" -eq 234 ]; then
        set result=EA
    elif [ "$1" -eq 235 ]; then
        set result=EB
    elif [ "$1" -eq 236 ]; then
        set result=EC
    elif [ "$1" -eq 237 ]; then
        set result=ED
    elif [ "$1" -eq 238 ]; then
        set result=EE
    elif [ "$1" -eq 239 ]; then
        set result=EF
    elif [ "$1" -eq 240 ]; then
        set result=F0
    elif [ "$1" -eq 241 ]; then
        set result=F1
    elif [ "$1" -eq 242 ]; then
        set result=F2
    elif [ "$1" -eq 243 ]; then
        set result=F3
    elif [ "$1" -eq 244 ]; then
        set result=F4
    elif [ "$1" -eq 245 ]; then
        set result=F5
    elif [ "$1" -eq 246 ]; then
        set result=F6
    elif [ "$1" -eq 247 ]; then
        set result=F7
    elif [ "$1" -eq 248 ]; then
        set result=F8
    elif [ "$1" -eq 249 ]; then
        set result=F9
    elif [ "$1" -eq 250 ]; then
        set result=FA
    elif [ "$1" -eq 251 ]; then
        set result=FB
    elif [ "$1" -eq 252 ]; then
        set result=FC
    elif [ "$1" -eq 253 ]; then
        set result=FD
    elif [ "$1" -eq 254 ]; then
        set result=FE
    elif [ "$1" -eq 255 ]; then
        set result=FF
    else
        set result=""
    fi
}

set mac_addr="${net_pxe_mac}"
if [ -z "${net_pxe_mac}" ]; then
    set mac_addr="${net_default_mac}"
fi

set ip_addr="${net_pxe_ip}"
if [ -z "${net_pxe_ip}" ]; then
    set ip_addr="${net_default_ip}"
fi

grub_cfg_dir="${prefix}/grub.cfg.d"

if [ -n "${mac_addr}" ]; then
    configfile "${grub_cfg_dir}/${mac_addr}"
fi

if [ -n "${ip_addr}" ]; then
    set regex_buf='^'
    set ip_addr_hex=""
    for index in 1 2 3 4; do
        regexp --set=num_dec "${regex_buf}([[:digit:]]+)" "${ip_addr}"
        dec_to_hex "${num_dec}"
        set ip_addr_hex="${ip_addr_hex}${result}"
        set regex_buf="${regex_buf}[[:digit:]]+\."
    done
    
    for index in 8 7 6 5 4 3 2 1; do
        regexp --set=regex_match "^([[:xdigit:]]{${index}})" "${ip_addr_hex}"
        configfile "${grub_cfg_dir}/${regex_match}"
    done
fi

configfile "${prefix}/grub.cfg.d/default"
