Thanks for solving my Rainbow Reversing Challenge!

First off, the name isn't a hint, it's just the name I made up when I started creating the challenge.
I wanted a name that starts with 'R'.

The challenge is a C++ program with objects created on the heap and one level of inheritance for those objects.

Note that you can pass the flag in as a command line argument for convenience.

As this is my first Reversing Challenge I'd love to hear your comments regarding what you found
easy and what you found difficult.  Any suggestions what I can do improve would be appreciated.
@kcbowhunter on Twitter and Discord.

Also, I'm assigning this challenge 50 points... if you think that is too high or too low please explain why and
suggest how many points you think it should be worth.

I am just learning reversing myself, and if it was me solving the challenge, after solving the challenge
I would like to see the source code to answer any questions that might come up working on the binary.

So the included file RainbowSources.zip.enc is an encrypted zip file of the C++ source and Python source used to create the
challenge.  The zip file is encrypted with the flag.  Solve the challenge, get the flag, see the sources.

Also, this is ctflearn.com, so it seems appropriate to me to include the sources in the challenge for review after
solving the challenge.

Decrypt sources.zip.enc with:
openssl enc -d -aes-cbc-256 -pbkdf2 -k flag -in RainbowSources.zip.enc -out RainbowSources.zip

Please don't share the flag or publish how you solve the challenge.

"Bears, Beets, Battlestar Galactica!"

If you want to know where the statement above comes from, watch this video clip:
https://www.youtube.com/watch?v=WaaANll8h18
(not really necessary to solve the Challenge)
