# Functions
Decode is an alias to a mapstructure.NewDecoder({Squash: true}).Decode() with WeaklyTypedInput set to true and MatchFunc that only compares aplhanumeric sequence in field names.
Decrypt decrypts config using EncryptionKeys.
GetEnvBoolDefault returns environment variable or default value if no env varible is present.
GetEnvDurationDefault returns environment variable or default value if no env varible is present.
GetEnvFloatDefault returns environment variable or default value if no env varible is present.
GetEnvIntDefault returns environment variable or default value if no env varible is present.
GetEnvStringDefault returns environment variable or default value if no env varible is present.
this won't work for udp payloads but if people use proxies they might not want to have their ip exposed so it's probably better to fail instead of routing the traffic directly.
It could've been more effective if go had yield but this should be close enough.
IsEncrypted returns true if cfg encrypted with age tool (https://github.com/FiloSottile/age).
PanicHandler just stub it in the beginning of every major module invocation to prevent single module failure from crashing the whole app.