On the Subject of ReGrettaBle Relay

Taking a break? I don't need a break yet!

The module may look familiar to ReGret-B Filtering, however, the module has a status light not shaped like a sphere; has no timer LEDs; and is rotated due to poor placement. The following instructions are read as if the module was correctly orientated.

The top display shows a starting hex code for that stage. The second display shows the calculation for the provided step in that stage. Calculate the answer to this and use it for the next step. Once you finish the calculation for that stage, enter the calculated hex code. The module will submit after inputting 6 hexadecimal characters, however submitting can be interrupted by pressing the arrow buttons before inputting the 6 hexadecimal characters. This will clear the previous inputs. There are 3 stages, with each stage consisting of calculating 1, 2, and 3 unique operators respectively. The arrow buttons can be used to cycle to the next or previous steps in that stage.

Upon submitting the answer, the LEDs to the right of the step counter will turn on based on what stage the defuser is on. If they are bright, that means a portion of the sequence is correct. Otherwise, if they are not bright, that portion of the submitted sequence is incorrect. The first stage checks the entire sequence; the second stage checks for each half of the sequence; the third stage checks for each third of the sequence. If any portions are incorrect the module will strike when the check finishes. The module only show how many portions you have entered correctly, but not reveal which portion is correct. Submitting the correct hex code will advance the defuser to the next stage and turn all the bright LEDs green to signify a completed stage. Upon completing the third stage on the other hand... Wait. Was this ReGret-B Filtering, the entire time!?

For each operator provided, X is initially the value on the top display on that stage, and in later steps the previously calculated hex code. Y is the value given on the middle screen for the calculation. When getting your new hex code, ensure to pad "0"s on each pair if the number of hexadecimal digits are not 6.

Non-Binary Operators

Split the hexadecimal codes of X and Y in pairs, and you may convert them into base 10 for these operators on each pair. Be sure to convert them back to hexadecimal before concatenating them to get your new hex code.

Additive average (+)

Split the hexadecimal codes of X and Y in pairs. Add the first of three values of X to the first of three values of Y. Divide this by two and round down. Repeat for the other numbers. Concatenate these pairs to obtain your new hex code.

Multiplicative average (×)

Split the hexadecimal codes of X and Y in pairs. Multiply the first of three values of X by the first of three values of Y. Take the square root of this and round down. Repeat for the other numbers. Concatenate these pairs to obtain your new hex code.

Inverse average (÷)

Split the hexadecimal codes of X and Y in pairs. Add the inverses of the first items of X and Y together. Take the inverse of this total, double it and round down. In the case either pair, or both are 0, that pair's result should be 00 instead. Repeat for the other numbers. Concatenate these pairs to obtain your new hex code.

Hex to Dec Conversion Lookup Table

HexDecHexDecHexDecHexDec

To convert a base 16 value to base 10, start with the left-most hex digit in the set and convert that to base-10. If this is not the last hex digit, multiply this by 16 and the next hex digit by converting the next hex digit into base-10 and adding that. Repeat the previous step until you go through all of the hex digits to obtain a base-10 value.

To convert a base-10 value into base-16, divide the current base-10 value by 16 and only take the remainder of that. Repeat until the current value is 0. Then convert each remainder into a hex digit. Concatenate these digits from when these remainders were obtained from last to first to obtain a base-16 value.

004488C12
115599D13
2266A10E14
3377B11F15

Binary Operators

Convert hexadecimals X and Y to binary. You may use the table provided for this if you have a hard time converting the values to binary. After performing the specified bitwise operator, convert the result of the bitwise operator back to hexadecimal to get your new hex code.

Bitwise OR (∨)

Convert hexadecimals X and Y to binary. Compare each bit of both X and Y and return 1 if either or both of them are 1, otherwise return 0. Convert that binary result into hexadecimal.

Bitwise AND (∧)

Convert hexadecimals X and Y to binary. Compare each bit of both X and Y and return 1 only if both of them are 1, otherwise return 0. Convert that binary result into hexadecimal.

Bitwise XOR (⊻)

Convert hexadecimals X and Y to binary. Compare each bit of both X and Y and return 1 if only one of them is 1, otherwise return 0. Convert that binary result into hexadecimal.

Hex to Binary Conversion Lookup Table

HexBinaryHexBinaryHexBinaryHexBinary
000004010081000C1100
100015010191001D1101
2001060110A1010E1110
3001170111B1011F1111