···1818 yield a, b
191920202121-tls_ips = 0
2222-ssl_ips = 0
2121+def parse_address(address):
2222+ runs = re.findall(r'(\w+)', address.strip())
2323+ return runs[::2], runs[1::2]
23242424-for line in fileinput.input():
2525- runs = re.findall(r'(\w+)', line.strip())
26252727- sequences = runs[0::2]
2828- hypernets = runs[1::2]
2626+def supports_tls(address):
2727+ sequences, hypernets = parse_address(address)
29283029 if any(is_abba(s) for s in sequences):
3130 if not any(is_abba(h) for h in hypernets):
3232- tls_ips += 1
3131+ return True
3232+3333+ return False
3434+3535+3636+def supports_ssl(address):
3737+ sequences, hypernets = parse_address(address)
33383439 for seq in sequences:
3540 for a, b in find_abas(seq):
3641 bab = b + a + b
37423843 if any(bab in h for h in hypernets):
3939- ssl_ips += 1
4040- break
4444+ return True
4545+4646+ return False
4747+41484242-print "Number of TLS IPs: %i" % tls_ips
4343-print "Number of SSL IPs: %i" % ssl_ips
4949+ADDRESSES = [line.strip() for line in fileinput.input()]
5050+print "Number of TLS IPs: %i" % sum(supports_tls(a) for a in ADDRESSES)
5151+print "Number of SSL IPs: %i" % sum(supports_ssl(a) for a in ADDRESSES)