furnace-avm2 0.0.1
Sign up to get free protection for your applications and to get access to all the features.
- data/.gitignore +1 -0
- data/Gemfile +3 -0
- data/Gemfile.lock +17 -0
- data/abcdump.abc +0 -0
- data/bin/furnace-avm2 +175 -0
- data/bin/furnace-avm2-benchmark +38 -0
- data/darkorbit.abc +0 -0
- data/furnace-avm2.gemspec +22 -0
- data/lib/avm2.rb +13 -0
- data/lib/avm2/abc.rb +65 -0
- data/lib/avm2/abc/metadata/const_pool_info.rb +18 -0
- data/lib/avm2/abc/metadata/exception_info.rb +29 -0
- data/lib/avm2/abc/metadata/file.rb +27 -0
- data/lib/avm2/abc/metadata/instance_info.rb +53 -0
- data/lib/avm2/abc/metadata/klass_info.rb +7 -0
- data/lib/avm2/abc/metadata/metadata_info.rb +9 -0
- data/lib/avm2/abc/metadata/method_body_info.rb +31 -0
- data/lib/avm2/abc/metadata/method_info.rb +57 -0
- data/lib/avm2/abc/metadata/multiname_info.rb +42 -0
- data/lib/avm2/abc/metadata/multiname_kind_genericname.rb +16 -0
- data/lib/avm2/abc/metadata/multiname_kind_multiname.rb +18 -0
- data/lib/avm2/abc/metadata/multiname_kind_multinamel.rb +17 -0
- data/lib/avm2/abc/metadata/multiname_kind_qname.rb +44 -0
- data/lib/avm2/abc/metadata/multiname_kind_rtqname.rb +17 -0
- data/lib/avm2/abc/metadata/multiname_kind_rtqnamel.rb +11 -0
- data/lib/avm2/abc/metadata/namespace_info.rb +22 -0
- data/lib/avm2/abc/metadata/ns_set_info.rb +13 -0
- data/lib/avm2/abc/metadata/option_detail.rb +26 -0
- data/lib/avm2/abc/metadata/option_info.rb +5 -0
- data/lib/avm2/abc/metadata/script_info.rb +7 -0
- data/lib/avm2/abc/metadata/trait_class.rb +9 -0
- data/lib/avm2/abc/metadata/trait_function.rb +9 -0
- data/lib/avm2/abc/metadata/trait_info.rb +55 -0
- data/lib/avm2/abc/metadata/trait_method.rb +12 -0
- data/lib/avm2/abc/metadata/trait_slot.rb +11 -0
- data/lib/avm2/abc/opcodes/arithmetic/as3_add.rb +8 -0
- data/lib/avm2/abc/opcodes/arithmetic/as3_add_i.rb +10 -0
- data/lib/avm2/abc/opcodes/arithmetic/as3_declocal.rb +14 -0
- data/lib/avm2/abc/opcodes/arithmetic/as3_declocal_i.rb +14 -0
- data/lib/avm2/abc/opcodes/arithmetic/as3_decrement.rb +10 -0
- data/lib/avm2/abc/opcodes/arithmetic/as3_decrement_i.rb +10 -0
- data/lib/avm2/abc/opcodes/arithmetic/as3_divide.rb +10 -0
- data/lib/avm2/abc/opcodes/arithmetic/as3_equals.rb +8 -0
- data/lib/avm2/abc/opcodes/arithmetic/as3_greaterequals.rb +8 -0
- data/lib/avm2/abc/opcodes/arithmetic/as3_greaterthan.rb +8 -0
- data/lib/avm2/abc/opcodes/arithmetic/as3_inclocal.rb +14 -0
- data/lib/avm2/abc/opcodes/arithmetic/as3_inclocal_i.rb +18 -0
- data/lib/avm2/abc/opcodes/arithmetic/as3_increment.rb +10 -0
- data/lib/avm2/abc/opcodes/arithmetic/as3_increment_i.rb +10 -0
- data/lib/avm2/abc/opcodes/arithmetic/as3_lessequals.rb +8 -0
- data/lib/avm2/abc/opcodes/arithmetic/as3_lessthan.rb +8 -0
- data/lib/avm2/abc/opcodes/arithmetic/as3_modulo.rb +10 -0
- data/lib/avm2/abc/opcodes/arithmetic/as3_multiply.rb +10 -0
- data/lib/avm2/abc/opcodes/arithmetic/as3_multiply_i.rb +10 -0
- data/lib/avm2/abc/opcodes/arithmetic/as3_negate.rb +10 -0
- data/lib/avm2/abc/opcodes/arithmetic/as3_negate_i.rb +10 -0
- data/lib/avm2/abc/opcodes/arithmetic/as3_not.rb +8 -0
- data/lib/avm2/abc/opcodes/arithmetic/as3_strictequals.rb +8 -0
- data/lib/avm2/abc/opcodes/arithmetic/as3_subtract.rb +10 -0
- data/lib/avm2/abc/opcodes/arithmetic/as3_subtract_i.rb +10 -0
- data/lib/avm2/abc/opcodes/arithmetic_opcode.rb +4 -0
- data/lib/avm2/abc/opcodes/bitwise/as3_bitand.rb +8 -0
- data/lib/avm2/abc/opcodes/bitwise/as3_bitnot.rb +8 -0
- data/lib/avm2/abc/opcodes/bitwise/as3_bitor.rb +8 -0
- data/lib/avm2/abc/opcodes/bitwise/as3_bitxor.rb +8 -0
- data/lib/avm2/abc/opcodes/bitwise/as3_lshift.rb +8 -0
- data/lib/avm2/abc/opcodes/bitwise/as3_rshift.rb +8 -0
- data/lib/avm2/abc/opcodes/bitwise/as3_urshift.rb +8 -0
- data/lib/avm2/abc/opcodes/bitwise_opcode.rb +4 -0
- data/lib/avm2/abc/opcodes/contextual_opcode.rb +32 -0
- data/lib/avm2/abc/opcodes/control_transfer/as3_ifeq.rb +14 -0
- data/lib/avm2/abc/opcodes/control_transfer/as3_iffalse.rb +14 -0
- data/lib/avm2/abc/opcodes/control_transfer/as3_ifge.rb +14 -0
- data/lib/avm2/abc/opcodes/control_transfer/as3_ifgt.rb +14 -0
- data/lib/avm2/abc/opcodes/control_transfer/as3_ifle.rb +14 -0
- data/lib/avm2/abc/opcodes/control_transfer/as3_iflt.rb +14 -0
- data/lib/avm2/abc/opcodes/control_transfer/as3_ifne.rb +14 -0
- data/lib/avm2/abc/opcodes/control_transfer/as3_ifnge.rb +14 -0
- data/lib/avm2/abc/opcodes/control_transfer/as3_ifngt.rb +14 -0
- data/lib/avm2/abc/opcodes/control_transfer/as3_ifnle.rb +14 -0
- data/lib/avm2/abc/opcodes/control_transfer/as3_ifnlt.rb +14 -0
- data/lib/avm2/abc/opcodes/control_transfer/as3_ifstricteq.rb +14 -0
- data/lib/avm2/abc/opcodes/control_transfer/as3_ifstrictne.rb +14 -0
- data/lib/avm2/abc/opcodes/control_transfer/as3_iftrue.rb +14 -0
- data/lib/avm2/abc/opcodes/control_transfer/as3_jump.rb +22 -0
- data/lib/avm2/abc/opcodes/control_transfer/as3_lookupswitch.rb +34 -0
- data/lib/avm2/abc/opcodes/control_transfer_opcode.rb +37 -0
- data/lib/avm2/abc/opcodes/exception/as3_newcatch.rb +16 -0
- data/lib/avm2/abc/opcodes/exception_opcode.rb +4 -0
- data/lib/avm2/abc/opcodes/function_invocation/as3_call.rb +16 -0
- data/lib/avm2/abc/opcodes/function_invocation/as3_callproperty.rb +7 -0
- data/lib/avm2/abc/opcodes/function_invocation/as3_callpropvoid.rb +7 -0
- data/lib/avm2/abc/opcodes/function_invocation/as3_callsuper.rb +7 -0
- data/lib/avm2/abc/opcodes/function_invocation/as3_callsupervoid.rb +7 -0
- data/lib/avm2/abc/opcodes/function_invocation_opcode.rb +17 -0
- data/lib/avm2/abc/opcodes/function_return/as3_returnvalue.rb +8 -0
- data/lib/avm2/abc/opcodes/function_return/as3_returnvoid.rb +8 -0
- data/lib/avm2/abc/opcodes/function_return_opcode.rb +4 -0
- data/lib/avm2/abc/opcodes/generic/as3_astypelate.rb +8 -0
- data/lib/avm2/abc/opcodes/generic/as3_checkfilter.rb +8 -0
- data/lib/avm2/abc/opcodes/generic/as3_dup.rb +8 -0
- data/lib/avm2/abc/opcodes/generic/as3_dxnslate.rb +8 -0
- data/lib/avm2/abc/opcodes/generic/as3_escxattr.rb +8 -0
- data/lib/avm2/abc/opcodes/generic/as3_getglobalscope.rb +8 -0
- data/lib/avm2/abc/opcodes/generic/as3_getlex.rb +16 -0
- data/lib/avm2/abc/opcodes/generic/as3_getscopeobject.rb +16 -0
- data/lib/avm2/abc/opcodes/generic/as3_getslot.rb +16 -0
- data/lib/avm2/abc/opcodes/generic/as3_hasnext.rb +8 -0
- data/lib/avm2/abc/opcodes/generic/as3_hasnext2.rb +17 -0
- data/lib/avm2/abc/opcodes/generic/as3_in.rb +8 -0
- data/lib/avm2/abc/opcodes/generic/as3_instanceof.rb +8 -0
- data/lib/avm2/abc/opcodes/generic/as3_istypelate.rb +8 -0
- data/lib/avm2/abc/opcodes/generic/as3_kill.rb +16 -0
- data/lib/avm2/abc/opcodes/generic/as3_label.rb +8 -0
- data/lib/avm2/abc/opcodes/generic/as3_nextname.rb +8 -0
- data/lib/avm2/abc/opcodes/generic/as3_nextvalue.rb +8 -0
- data/lib/avm2/abc/opcodes/generic/as3_nop.rb +8 -0
- data/lib/avm2/abc/opcodes/generic/as3_pop.rb +8 -0
- data/lib/avm2/abc/opcodes/generic/as3_popscope.rb +8 -0
- data/lib/avm2/abc/opcodes/generic/as3_setslot.rb +16 -0
- data/lib/avm2/abc/opcodes/generic/as3_swap.rb +8 -0
- data/lib/avm2/abc/opcodes/generic/as3_throw.rb +8 -0
- data/lib/avm2/abc/opcodes/generic/as3_typeof.rb +8 -0
- data/lib/avm2/abc/opcodes/load_store/as3_getlocal.rb +15 -0
- data/lib/avm2/abc/opcodes/load_store/as3_getlocal_0.rb +11 -0
- data/lib/avm2/abc/opcodes/load_store/as3_getlocal_1.rb +11 -0
- data/lib/avm2/abc/opcodes/load_store/as3_getlocal_2.rb +11 -0
- data/lib/avm2/abc/opcodes/load_store/as3_getlocal_3.rb +11 -0
- data/lib/avm2/abc/opcodes/load_store/as3_setlocal.rb +15 -0
- data/lib/avm2/abc/opcodes/load_store/as3_setlocal_0.rb +11 -0
- data/lib/avm2/abc/opcodes/load_store/as3_setlocal_1.rb +11 -0
- data/lib/avm2/abc/opcodes/load_store/as3_setlocal_2.rb +11 -0
- data/lib/avm2/abc/opcodes/load_store/as3_setlocal_3.rb +11 -0
- data/lib/avm2/abc/opcodes/load_store_opcode.rb +18 -0
- data/lib/avm2/abc/opcodes/object_manipulation/as3_construct.rb +12 -0
- data/lib/avm2/abc/opcodes/object_manipulation/as3_constructsuper.rb +16 -0
- data/lib/avm2/abc/opcodes/object_manipulation/as3_newactivation.rb +8 -0
- data/lib/avm2/abc/opcodes/object_manipulation/as3_newarray.rb +12 -0
- data/lib/avm2/abc/opcodes/object_manipulation/as3_newclass.rb +12 -0
- data/lib/avm2/abc/opcodes/object_manipulation/as3_newfunction.rb +12 -0
- data/lib/avm2/abc/opcodes/object_manipulation/as3_newobject.rb +12 -0
- data/lib/avm2/abc/opcodes/object_manipulation_opcode.rb +4 -0
- data/lib/avm2/abc/opcodes/opcode.rb +127 -0
- data/lib/avm2/abc/opcodes/property/as3_constructprop.rb +20 -0
- data/lib/avm2/abc/opcodes/property/as3_deleteproperty.rb +9 -0
- data/lib/avm2/abc/opcodes/property/as3_findproperty.rb +9 -0
- data/lib/avm2/abc/opcodes/property/as3_findpropstrict.rb +9 -0
- data/lib/avm2/abc/opcodes/property/as3_getdescendants.rb +9 -0
- data/lib/avm2/abc/opcodes/property/as3_getproperty.rb +9 -0
- data/lib/avm2/abc/opcodes/property/as3_getsuper.rb +9 -0
- data/lib/avm2/abc/opcodes/property/as3_initproperty.rb +9 -0
- data/lib/avm2/abc/opcodes/property/as3_setproperty.rb +9 -0
- data/lib/avm2/abc/opcodes/property/as3_setsuper.rb +9 -0
- data/lib/avm2/abc/opcodes/property_opcode.rb +13 -0
- data/lib/avm2/abc/opcodes/push_literal/as3_pushbyte.rb +11 -0
- data/lib/avm2/abc/opcodes/push_literal/as3_pushdouble.rb +11 -0
- data/lib/avm2/abc/opcodes/push_literal/as3_pushfalse.rb +7 -0
- data/lib/avm2/abc/opcodes/push_literal/as3_pushint.rb +11 -0
- data/lib/avm2/abc/opcodes/push_literal/as3_pushnan.rb +7 -0
- data/lib/avm2/abc/opcodes/push_literal/as3_pushnull.rb +7 -0
- data/lib/avm2/abc/opcodes/push_literal/as3_pushscope.rb +8 -0
- data/lib/avm2/abc/opcodes/push_literal/as3_pushshort.rb +11 -0
- data/lib/avm2/abc/opcodes/push_literal/as3_pushstring.rb +11 -0
- data/lib/avm2/abc/opcodes/push_literal/as3_pushtrue.rb +7 -0
- data/lib/avm2/abc/opcodes/push_literal/as3_pushundefined.rb +7 -0
- data/lib/avm2/abc/opcodes/push_literal/as3_pushwith.rb +8 -0
- data/lib/avm2/abc/opcodes/push_literal_opcode.rb +18 -0
- data/lib/avm2/abc/opcodes/type_conversion/as3_applytype.rb +12 -0
- data/lib/avm2/abc/opcodes/type_conversion/as3_coerce.rb +16 -0
- data/lib/avm2/abc/opcodes/type_conversion/as3_coerce_a.rb +8 -0
- data/lib/avm2/abc/opcodes/type_conversion/as3_coerce_b.rb +10 -0
- data/lib/avm2/abc/opcodes/type_conversion/as3_coerce_s.rb +10 -0
- data/lib/avm2/abc/opcodes/type_conversion/as3_convert_d.rb +10 -0
- data/lib/avm2/abc/opcodes/type_conversion/as3_convert_i.rb +10 -0
- data/lib/avm2/abc/opcodes/type_conversion/as3_convert_o.rb +10 -0
- data/lib/avm2/abc/opcodes/type_conversion/as3_convert_s.rb +10 -0
- data/lib/avm2/abc/opcodes/type_conversion/as3_convert_u.rb +10 -0
- data/lib/avm2/abc/opcodes/type_conversion_opcode.rb +4 -0
- data/lib/avm2/abc/primitives/opcode_sequence.rb +195 -0
- data/lib/avm2/abc/primitives/record.rb +132 -0
- data/lib/avm2/binary/choice_definition.rb +21 -0
- data/lib/avm2/binary/record.rb +469 -0
- data/lib/avm2/transform.rb +6 -0
- data/lib/avm2/transform/ast_build.rb +206 -0
- data/lib/avm2/transform/ast_normalize.rb +0 -0
- data/lib/avm2/version.rb +3 -0
- data/test/exception.abc +0 -0
- data/test/exception.as +29 -0
- data/test/literal.abc +0 -0
- data/test/literal.as +5 -0
- data/test/logic.abc +0 -0
- data/test/logic.as +23 -0
- data/test/loops.abc +0 -0
- data/test/loops.as +30 -0
- data/test/number.abc +0 -0
- data/test/number.as +14 -0
- data/test/switch.abc +0 -0
- data/test/switch.as +38 -0
- data/test/ternary.abc +0 -0
- data/test/ternary.as +22 -0
- metadata +579 -0
@@ -0,0 +1,206 @@
|
|
1
|
+
module AVM2
|
2
|
+
module Transform
|
3
|
+
class ASTBuild
|
4
|
+
CONDITIONAL_OPERATORS = [ :if_eq, :if_false, :if_true, :if_ge, :if_gt,
|
5
|
+
:if_le, :if_lt, :if_ne, :if_nge, :if_ngt,
|
6
|
+
:if_nle, :if_nlt, :if_strict_eq, :if_strict_ne, :if_true ]
|
7
|
+
|
8
|
+
CONST_OPERATORS = [ :push_byte, :push_double, :push_false, :push_int, :push_nan,
|
9
|
+
:push_short, :push_string, :push_true, :push_undefined, :push_null ]
|
10
|
+
|
11
|
+
def initialize(options)
|
12
|
+
@validate = options[:validate] || false
|
13
|
+
@verbose = options[:verbose] || false
|
14
|
+
|
15
|
+
#@verbose = true
|
16
|
+
end
|
17
|
+
|
18
|
+
def transform(code, method)
|
19
|
+
stack = []
|
20
|
+
ast = AST::Node.new(:root)
|
21
|
+
|
22
|
+
dup = nil
|
23
|
+
spurious = 0
|
24
|
+
|
25
|
+
in_shortcut = false
|
26
|
+
shortjump = []
|
27
|
+
ternary = []
|
28
|
+
|
29
|
+
consume = lambda do |count|
|
30
|
+
if count == 0
|
31
|
+
[]
|
32
|
+
elsif count <= stack.size
|
33
|
+
stack.slice!(-count..-1)
|
34
|
+
else
|
35
|
+
raise "cannot consume #{count}: stack underflow with #{stack.size}"
|
36
|
+
end
|
37
|
+
end
|
38
|
+
|
39
|
+
produce = lambda do |what|
|
40
|
+
stack.push what
|
41
|
+
end
|
42
|
+
|
43
|
+
emit = lambda do |node|
|
44
|
+
if @verbose
|
45
|
+
puts "emitted:"
|
46
|
+
puts node.to_sexp(1)
|
47
|
+
end
|
48
|
+
|
49
|
+
ast.children.push node
|
50
|
+
end
|
51
|
+
|
52
|
+
extend_complex_expr = lambda do |valid_types, expected_depth=nil|
|
53
|
+
expr, current = consume.(2)
|
54
|
+
|
55
|
+
if @validate
|
56
|
+
if !valid_types.include?(expr.type)
|
57
|
+
raise "invalid complex expr: #{expr.type} not in #{valid_types}"
|
58
|
+
elsif expected_depth && expr.children.count != expected_depth
|
59
|
+
raise "invalid complex expr: depth #{expr.children.count} != #{expected_depth}"
|
60
|
+
end
|
61
|
+
end
|
62
|
+
|
63
|
+
emit.(current)
|
64
|
+
produce.(expr)
|
65
|
+
end
|
66
|
+
|
67
|
+
finalize_complex_expr = lambda do |opcode, worklist, valid_types, expected_depth=nil|
|
68
|
+
while worklist.last == opcode.offset
|
69
|
+
extend_complex_expr.(valid_types, expected_depth)
|
70
|
+
worklist.pop
|
71
|
+
end
|
72
|
+
end
|
73
|
+
|
74
|
+
expand_conditionals = lambda do
|
75
|
+
while stack.any? && CONDITIONAL_OPERATORS.include?(stack.last.type)
|
76
|
+
conditional, = consume.(1)
|
77
|
+
|
78
|
+
jump_node = AST::Node.new(:jump_if, [ true, conditional.metadata[:offset], conditional ])
|
79
|
+
emit.(jump_node)
|
80
|
+
end
|
81
|
+
end
|
82
|
+
|
83
|
+
code.each do |opcode|
|
84
|
+
if @verbose
|
85
|
+
puts "================================"
|
86
|
+
puts "stack: #{stack.inspect}"
|
87
|
+
puts "shortjump: #{shortjump.inspect} ternary: #{ternary.inspect}"
|
88
|
+
puts "opcode: #{opcode.inspect}"
|
89
|
+
end
|
90
|
+
|
91
|
+
finalize_complex_expr.(opcode, shortjump, [ :and, :or ], 1)
|
92
|
+
finalize_complex_expr.(opcode, ternary, CONDITIONAL_OPERATORS)
|
93
|
+
|
94
|
+
if dup == 1 && (opcode.is_a?(ABC::AS3CoerceB) ||
|
95
|
+
opcode.is_a?(ABC::AS3IfTrue) || opcode.is_a?(ABC::AS3IfFalse))
|
96
|
+
in_shortcut = true
|
97
|
+
dup = false
|
98
|
+
end
|
99
|
+
|
100
|
+
if in_shortcut
|
101
|
+
if opcode.is_a?(ABC::AS3IfTrue)
|
102
|
+
type = :or
|
103
|
+
elsif opcode.is_a?(ABC::AS3IfFalse)
|
104
|
+
type = :and
|
105
|
+
elsif opcode.is_a?(ABC::AS3CoerceB)
|
106
|
+
next
|
107
|
+
elsif opcode.is_a?(ABC::AS3Pop)
|
108
|
+
in_shortcut = false
|
109
|
+
next
|
110
|
+
elsif opcode.is_a?(ABC::AS3Jump) && opcode.body.jump_offset == 0
|
111
|
+
# nop
|
112
|
+
next
|
113
|
+
else
|
114
|
+
raise "invalid shortcut"
|
115
|
+
end
|
116
|
+
|
117
|
+
node = AST::Node.new(type, [], label: opcode.offset)
|
118
|
+
node.children = consume.(1)
|
119
|
+
produce.(node)
|
120
|
+
|
121
|
+
shortjump.push opcode.target_offset
|
122
|
+
elsif opcode.is_a?(ABC::AS3Swap)
|
123
|
+
first, second = stack.pop, stack.pop
|
124
|
+
stack.push first, second
|
125
|
+
elsif opcode.is_a?(ABC::AS3Dup)
|
126
|
+
node = stack.last
|
127
|
+
|
128
|
+
if CONST_OPERATORS.include? node.type
|
129
|
+
dup_node = node.dup
|
130
|
+
dup_node.metadata[:label] = opcode.offset
|
131
|
+
produce.(dup_node)
|
132
|
+
else
|
133
|
+
dup ||= 0
|
134
|
+
dup += 1
|
135
|
+
end
|
136
|
+
elsif opcode.is_a?(ABC::AS3Jump)
|
137
|
+
if opcode.body.jump_offset == 0
|
138
|
+
node = AST::Node.new(:jump_target, [], label: opcode.offset)
|
139
|
+
emit.(node)
|
140
|
+
elsif stack.any? && !CONDITIONAL_OPERATORS.include?(stack.last.type)
|
141
|
+
extend_complex_expr.(CONDITIONAL_OPERATORS)
|
142
|
+
|
143
|
+
ternary.push opcode.target_offset
|
144
|
+
else
|
145
|
+
expand_conditionals.()
|
146
|
+
|
147
|
+
node = AST::Node.new(opcode.ast_type, opcode.parameters, label: opcode.offset)
|
148
|
+
emit.(node)
|
149
|
+
end
|
150
|
+
elsif opcode.is_a?(ABC::ControlTransferOpcode)
|
151
|
+
node = AST::Node.new(opcode.ast_type, [], label: opcode.offset)
|
152
|
+
node.metadata[:offset] = opcode.target_offset
|
153
|
+
node.children = consume.(opcode.consumes)
|
154
|
+
produce.(node)
|
155
|
+
elsif opcode.is_a?(ABC::AS3Kill)
|
156
|
+
# Ignore. SSA will handle that.
|
157
|
+
else
|
158
|
+
if dup
|
159
|
+
spurious += 1
|
160
|
+
|
161
|
+
save_node = AST::Node.new(:set_spurious, [ spurious, *consume.(1) ])
|
162
|
+
emit.(save_node)
|
163
|
+
|
164
|
+
(1 + dup).times do
|
165
|
+
load_node = AST::Node.new(:get_spurious, [ spurious ])
|
166
|
+
produce.(load_node)
|
167
|
+
end
|
168
|
+
|
169
|
+
dup = false
|
170
|
+
end
|
171
|
+
|
172
|
+
node = AST::Node.new(opcode.ast_type, [], label: opcode.offset)
|
173
|
+
|
174
|
+
parameters = consume.(opcode.consumes)
|
175
|
+
if opcode.consumes_context
|
176
|
+
context = opcode.context(consume.(opcode.consumes_context))
|
177
|
+
end
|
178
|
+
|
179
|
+
node.children.concat context if context
|
180
|
+
node.children.concat opcode.parameters
|
181
|
+
node.children.concat parameters
|
182
|
+
|
183
|
+
# All opcodes which produce 2 results--that is, dup and swap--
|
184
|
+
# are already handled at the top.
|
185
|
+
if opcode.produces == 0
|
186
|
+
expand_conditionals.()
|
187
|
+
emit.(node)
|
188
|
+
elsif opcode.produces == 1
|
189
|
+
produce.(node)
|
190
|
+
end
|
191
|
+
end
|
192
|
+
end
|
193
|
+
|
194
|
+
if @validate
|
195
|
+
extracted_opcodes = []
|
196
|
+
extract = lambda do |tree|
|
197
|
+
extracted_opcodes.push tree.metadata[:label]
|
198
|
+
tree.select { |c| c.is_a? Node }.each { |c| extract.(c) }
|
199
|
+
end
|
200
|
+
end
|
201
|
+
|
202
|
+
[ ast.normalize_hierarchy!, method ]
|
203
|
+
end
|
204
|
+
end
|
205
|
+
end
|
206
|
+
end
|
File without changes
|
data/lib/avm2/version.rb
ADDED
data/test/exception.abc
ADDED
Binary file
|
data/test/exception.as
ADDED
@@ -0,0 +1,29 @@
|
|
1
|
+
package test {
|
2
|
+
function c() {
|
3
|
+
try {
|
4
|
+
hoge();
|
5
|
+
} finally {
|
6
|
+
piyo();
|
7
|
+
}
|
8
|
+
}
|
9
|
+
function b() {
|
10
|
+
try {
|
11
|
+
hoge();
|
12
|
+
throw 1;
|
13
|
+
fuga();
|
14
|
+
} catch(e: SecurityError) {
|
15
|
+
piyo(e);
|
16
|
+
}
|
17
|
+
}
|
18
|
+
function a() {
|
19
|
+
try {
|
20
|
+
hoge();
|
21
|
+
throw 1;
|
22
|
+
fuga();
|
23
|
+
} catch(e: SecurityError) {
|
24
|
+
piyo(e);
|
25
|
+
} catch(e: Error) {
|
26
|
+
throw e;
|
27
|
+
}
|
28
|
+
}
|
29
|
+
}
|
data/test/literal.abc
ADDED
Binary file
|
data/test/literal.as
ADDED
data/test/logic.abc
ADDED
Binary file
|
data/test/logic.as
ADDED
@@ -0,0 +1,23 @@
|
|
1
|
+
package test {
|
2
|
+
function P_a_or_b_p_and_P_c_and_d_p_or_e(a: Boolean, b:Boolean, c:Boolean, d:Boolean, e:Boolean) : Boolean {
|
3
|
+
var v:Boolean = (a || b) && (c && d) || e;
|
4
|
+
away();
|
5
|
+
return v;
|
6
|
+
}
|
7
|
+
function a_or_b(a: Boolean, b:Boolean, c:Boolean, d:Boolean, e:Boolean) : Boolean {
|
8
|
+
if(a || b) {
|
9
|
+
yes();
|
10
|
+
} else {
|
11
|
+
no();
|
12
|
+
}
|
13
|
+
}
|
14
|
+
function a_and_b_and_c(a: Boolean, b:Boolean, c:Boolean, d:Boolean, e:Boolean) : Boolean {
|
15
|
+
return a && b && c;
|
16
|
+
}
|
17
|
+
function P_a_and_b_p_and_c(a: Boolean, b:Boolean, c:Boolean, d:Boolean, e:Boolean) : Boolean {
|
18
|
+
return (a && b) && c;
|
19
|
+
}
|
20
|
+
function a_and_b(a: Boolean, b:Boolean, c:Boolean, d:Boolean, e:Boolean) : Boolean {
|
21
|
+
return a && b;
|
22
|
+
}
|
23
|
+
}
|
data/test/loops.abc
ADDED
Binary file
|
data/test/loops.as
ADDED
@@ -0,0 +1,30 @@
|
|
1
|
+
package test {
|
2
|
+
function d() {
|
3
|
+
while(true) {
|
4
|
+
pow();
|
5
|
+
if(frak()) { a(); break; b(); }
|
6
|
+
weee();
|
7
|
+
}
|
8
|
+
}
|
9
|
+
function c() {
|
10
|
+
while(true) {
|
11
|
+
pow();
|
12
|
+
if(frak()) { break; }
|
13
|
+
weee();
|
14
|
+
}
|
15
|
+
}
|
16
|
+
function b() {
|
17
|
+
weee();
|
18
|
+
for(var q:int = 1; q > 0; q++) {
|
19
|
+
frak();
|
20
|
+
}
|
21
|
+
}
|
22
|
+
function a() {
|
23
|
+
var q:int = 1;
|
24
|
+
weee();
|
25
|
+
while(q > 0) {
|
26
|
+
frak();
|
27
|
+
q++;
|
28
|
+
}
|
29
|
+
}
|
30
|
+
}
|
data/test/number.abc
ADDED
Binary file
|
data/test/number.as
ADDED
data/test/switch.abc
ADDED
Binary file
|
data/test/switch.as
ADDED
@@ -0,0 +1,38 @@
|
|
1
|
+
package test {
|
2
|
+
function b(q:int):Boolean {
|
3
|
+
|
4
|
+
for(;;) {
|
5
|
+
switch(prop) {
|
6
|
+
case 0x10:
|
7
|
+
case 0x20:
|
8
|
+
fuga();
|
9
|
+
break;
|
10
|
+
|
11
|
+
case 0x30:
|
12
|
+
piyo();
|
13
|
+
break;
|
14
|
+
|
15
|
+
default:
|
16
|
+
baz();
|
17
|
+
break;
|
18
|
+
}
|
19
|
+
}
|
20
|
+
return false;
|
21
|
+
}
|
22
|
+
function a(q:int):Boolean {
|
23
|
+
switch(q) {
|
24
|
+
case 0x10:
|
25
|
+
hoge();
|
26
|
+
case 0x20:
|
27
|
+
fuga();
|
28
|
+
break;
|
29
|
+
case 0x30:
|
30
|
+
piyo();
|
31
|
+
break;
|
32
|
+
default:
|
33
|
+
baz();
|
34
|
+
break;
|
35
|
+
}
|
36
|
+
return false;
|
37
|
+
}
|
38
|
+
}
|
data/test/ternary.abc
ADDED
Binary file
|
data/test/ternary.as
ADDED
@@ -0,0 +1,22 @@
|
|
1
|
+
package test {
|
2
|
+
function hardcore(a: Boolean, b:Boolean, c:Boolean, d:Boolean, e:Boolean) : Boolean {
|
3
|
+
if(((a && b) ? (c || d) && e : b) && (a || b)) {
|
4
|
+
return pow();
|
5
|
+
} else {
|
6
|
+
weeee();
|
7
|
+
}
|
8
|
+
duh();
|
9
|
+
}
|
10
|
+
function q(a: Boolean, b:Boolean, c:Boolean, d:Boolean, e:Boolean) : Boolean {
|
11
|
+
return ((a ? b : c) ? (b ? c : d) : (c ? d : e));
|
12
|
+
}
|
13
|
+
function a_I_b_E_c_I_d_E_e(a: Boolean, b:Boolean, c:Boolean, d:Boolean, e:Boolean) : Boolean {
|
14
|
+
return a ? b : (c ? d : e);
|
15
|
+
}
|
16
|
+
function a_I_b_I_c_E_d_E_e(a: Boolean, b:Boolean, c:Boolean, d:Boolean, e:Boolean) : Boolean {
|
17
|
+
return a ? (b ? c : d) : e;
|
18
|
+
}
|
19
|
+
function a_I_b_E_c(a: Boolean, b:Boolean, c:Boolean, d:Boolean, e:Boolean) : Boolean {
|
20
|
+
return (1 > 2) ? b : c;
|
21
|
+
}
|
22
|
+
}
|
metadata
ADDED
@@ -0,0 +1,579 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: furnace-avm2
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
prerelease:
|
5
|
+
version: 0.0.1
|
6
|
+
platform: ruby
|
7
|
+
authors:
|
8
|
+
- Peter Zotov
|
9
|
+
autorequire:
|
10
|
+
bindir: bin
|
11
|
+
cert_chain: []
|
12
|
+
date: 2012-01-26 00:00:00.000000000 Z
|
13
|
+
dependencies:
|
14
|
+
- !ruby/object:Gem::Dependency
|
15
|
+
name: furnace
|
16
|
+
version_requirements: &2056 !ruby/object:Gem::Requirement
|
17
|
+
requirements:
|
18
|
+
- - ! '>='
|
19
|
+
- !ruby/object:Gem::Version
|
20
|
+
version: !binary |-
|
21
|
+
MA==
|
22
|
+
none: false
|
23
|
+
requirement: *2056
|
24
|
+
prerelease: false
|
25
|
+
type: :runtime
|
26
|
+
- !ruby/object:Gem::Dependency
|
27
|
+
name: trollop
|
28
|
+
version_requirements: &2074 !ruby/object:Gem::Requirement
|
29
|
+
requirements:
|
30
|
+
- - ! '>='
|
31
|
+
- !ruby/object:Gem::Version
|
32
|
+
version: !binary |-
|
33
|
+
MA==
|
34
|
+
none: false
|
35
|
+
requirement: *2074
|
36
|
+
prerelease: false
|
37
|
+
type: :runtime
|
38
|
+
description: furnace-avm2 allows one to load, modify and write backFlash ActionScript3 bytecode. It can also decompile it.
|
39
|
+
email:
|
40
|
+
- whitequark@whitequark.org
|
41
|
+
executables:
|
42
|
+
- furnace-avm2
|
43
|
+
- furnace-avm2-benchmark
|
44
|
+
extensions: []
|
45
|
+
extra_rdoc_files: []
|
46
|
+
files:
|
47
|
+
- !binary |-
|
48
|
+
LmdpdGlnbm9yZQ==
|
49
|
+
- !binary |-
|
50
|
+
R2VtZmlsZQ==
|
51
|
+
- !binary |-
|
52
|
+
R2VtZmlsZS5sb2Nr
|
53
|
+
- !binary |-
|
54
|
+
YWJjZHVtcC5hYmM=
|
55
|
+
- !binary |-
|
56
|
+
YmluL2Z1cm5hY2UtYXZtMg==
|
57
|
+
- !binary |-
|
58
|
+
YmluL2Z1cm5hY2UtYXZtMi1iZW5jaG1hcms=
|
59
|
+
- !binary |-
|
60
|
+
ZGFya29yYml0LmFiYw==
|
61
|
+
- !binary |-
|
62
|
+
ZnVybmFjZS1hdm0yLmdlbXNwZWM=
|
63
|
+
- !binary |-
|
64
|
+
bGliL2F2bTIucmI=
|
65
|
+
- !binary |-
|
66
|
+
bGliL2F2bTIvYWJjLnJi
|
67
|
+
- !binary |-
|
68
|
+
bGliL2F2bTIvYWJjL21ldGFkYXRhL2NvbnN0X3Bvb2xfaW5mby5yYg==
|
69
|
+
- !binary |-
|
70
|
+
bGliL2F2bTIvYWJjL21ldGFkYXRhL2V4Y2VwdGlvbl9pbmZvLnJi
|
71
|
+
- !binary |-
|
72
|
+
bGliL2F2bTIvYWJjL21ldGFkYXRhL2ZpbGUucmI=
|
73
|
+
- !binary |-
|
74
|
+
bGliL2F2bTIvYWJjL21ldGFkYXRhL2luc3RhbmNlX2luZm8ucmI=
|
75
|
+
- !binary |-
|
76
|
+
bGliL2F2bTIvYWJjL21ldGFkYXRhL2tsYXNzX2luZm8ucmI=
|
77
|
+
- !binary |-
|
78
|
+
bGliL2F2bTIvYWJjL21ldGFkYXRhL21ldGFkYXRhX2luZm8ucmI=
|
79
|
+
- !binary |-
|
80
|
+
bGliL2F2bTIvYWJjL21ldGFkYXRhL21ldGhvZF9ib2R5X2luZm8ucmI=
|
81
|
+
- !binary |-
|
82
|
+
bGliL2F2bTIvYWJjL21ldGFkYXRhL21ldGhvZF9pbmZvLnJi
|
83
|
+
- !binary |-
|
84
|
+
bGliL2F2bTIvYWJjL21ldGFkYXRhL211bHRpbmFtZV9pbmZvLnJi
|
85
|
+
- !binary |-
|
86
|
+
bGliL2F2bTIvYWJjL21ldGFkYXRhL211bHRpbmFtZV9raW5kX2dlbmVyaWNu
|
87
|
+
YW1lLnJi
|
88
|
+
- !binary |-
|
89
|
+
bGliL2F2bTIvYWJjL21ldGFkYXRhL211bHRpbmFtZV9raW5kX211bHRpbmFt
|
90
|
+
ZS5yYg==
|
91
|
+
- !binary |-
|
92
|
+
bGliL2F2bTIvYWJjL21ldGFkYXRhL211bHRpbmFtZV9raW5kX211bHRpbmFt
|
93
|
+
ZWwucmI=
|
94
|
+
- !binary |-
|
95
|
+
bGliL2F2bTIvYWJjL21ldGFkYXRhL211bHRpbmFtZV9raW5kX3FuYW1lLnJi
|
96
|
+
- !binary |-
|
97
|
+
bGliL2F2bTIvYWJjL21ldGFkYXRhL211bHRpbmFtZV9raW5kX3J0cW5hbWUu
|
98
|
+
cmI=
|
99
|
+
- !binary |-
|
100
|
+
bGliL2F2bTIvYWJjL21ldGFkYXRhL211bHRpbmFtZV9raW5kX3J0cW5hbWVs
|
101
|
+
LnJi
|
102
|
+
- !binary |-
|
103
|
+
bGliL2F2bTIvYWJjL21ldGFkYXRhL25hbWVzcGFjZV9pbmZvLnJi
|
104
|
+
- !binary |-
|
105
|
+
bGliL2F2bTIvYWJjL21ldGFkYXRhL25zX3NldF9pbmZvLnJi
|
106
|
+
- !binary |-
|
107
|
+
bGliL2F2bTIvYWJjL21ldGFkYXRhL29wdGlvbl9kZXRhaWwucmI=
|
108
|
+
- !binary |-
|
109
|
+
bGliL2F2bTIvYWJjL21ldGFkYXRhL29wdGlvbl9pbmZvLnJi
|
110
|
+
- !binary |-
|
111
|
+
bGliL2F2bTIvYWJjL21ldGFkYXRhL3NjcmlwdF9pbmZvLnJi
|
112
|
+
- !binary |-
|
113
|
+
bGliL2F2bTIvYWJjL21ldGFkYXRhL3RyYWl0X2NsYXNzLnJi
|
114
|
+
- !binary |-
|
115
|
+
bGliL2F2bTIvYWJjL21ldGFkYXRhL3RyYWl0X2Z1bmN0aW9uLnJi
|
116
|
+
- !binary |-
|
117
|
+
bGliL2F2bTIvYWJjL21ldGFkYXRhL3RyYWl0X2luZm8ucmI=
|
118
|
+
- !binary |-
|
119
|
+
bGliL2F2bTIvYWJjL21ldGFkYXRhL3RyYWl0X21ldGhvZC5yYg==
|
120
|
+
- !binary |-
|
121
|
+
bGliL2F2bTIvYWJjL21ldGFkYXRhL3RyYWl0X3Nsb3QucmI=
|
122
|
+
- !binary |-
|
123
|
+
bGliL2F2bTIvYWJjL29wY29kZXMvYXJpdGhtZXRpYy9hczNfYWRkLnJi
|
124
|
+
- !binary |-
|
125
|
+
bGliL2F2bTIvYWJjL29wY29kZXMvYXJpdGhtZXRpYy9hczNfYWRkX2kucmI=
|
126
|
+
- !binary |-
|
127
|
+
bGliL2F2bTIvYWJjL29wY29kZXMvYXJpdGhtZXRpYy9hczNfZGVjbG9jYWwu
|
128
|
+
cmI=
|
129
|
+
- !binary |-
|
130
|
+
bGliL2F2bTIvYWJjL29wY29kZXMvYXJpdGhtZXRpYy9hczNfZGVjbG9jYWxf
|
131
|
+
aS5yYg==
|
132
|
+
- !binary |-
|
133
|
+
bGliL2F2bTIvYWJjL29wY29kZXMvYXJpdGhtZXRpYy9hczNfZGVjcmVtZW50
|
134
|
+
LnJi
|
135
|
+
- !binary |-
|
136
|
+
bGliL2F2bTIvYWJjL29wY29kZXMvYXJpdGhtZXRpYy9hczNfZGVjcmVtZW50
|
137
|
+
X2kucmI=
|
138
|
+
- !binary |-
|
139
|
+
bGliL2F2bTIvYWJjL29wY29kZXMvYXJpdGhtZXRpYy9hczNfZGl2aWRlLnJi
|
140
|
+
- !binary |-
|
141
|
+
bGliL2F2bTIvYWJjL29wY29kZXMvYXJpdGhtZXRpYy9hczNfZXF1YWxzLnJi
|
142
|
+
- !binary |-
|
143
|
+
bGliL2F2bTIvYWJjL29wY29kZXMvYXJpdGhtZXRpYy9hczNfZ3JlYXRlcmVx
|
144
|
+
dWFscy5yYg==
|
145
|
+
- !binary |-
|
146
|
+
bGliL2F2bTIvYWJjL29wY29kZXMvYXJpdGhtZXRpYy9hczNfZ3JlYXRlcnRo
|
147
|
+
YW4ucmI=
|
148
|
+
- !binary |-
|
149
|
+
bGliL2F2bTIvYWJjL29wY29kZXMvYXJpdGhtZXRpYy9hczNfaW5jbG9jYWwu
|
150
|
+
cmI=
|
151
|
+
- !binary |-
|
152
|
+
bGliL2F2bTIvYWJjL29wY29kZXMvYXJpdGhtZXRpYy9hczNfaW5jbG9jYWxf
|
153
|
+
aS5yYg==
|
154
|
+
- !binary |-
|
155
|
+
bGliL2F2bTIvYWJjL29wY29kZXMvYXJpdGhtZXRpYy9hczNfaW5jcmVtZW50
|
156
|
+
LnJi
|
157
|
+
- !binary |-
|
158
|
+
bGliL2F2bTIvYWJjL29wY29kZXMvYXJpdGhtZXRpYy9hczNfaW5jcmVtZW50
|
159
|
+
X2kucmI=
|
160
|
+
- !binary |-
|
161
|
+
bGliL2F2bTIvYWJjL29wY29kZXMvYXJpdGhtZXRpYy9hczNfbGVzc2VxdWFs
|
162
|
+
cy5yYg==
|
163
|
+
- !binary |-
|
164
|
+
bGliL2F2bTIvYWJjL29wY29kZXMvYXJpdGhtZXRpYy9hczNfbGVzc3RoYW4u
|
165
|
+
cmI=
|
166
|
+
- !binary |-
|
167
|
+
bGliL2F2bTIvYWJjL29wY29kZXMvYXJpdGhtZXRpYy9hczNfbW9kdWxvLnJi
|
168
|
+
- !binary |-
|
169
|
+
bGliL2F2bTIvYWJjL29wY29kZXMvYXJpdGhtZXRpYy9hczNfbXVsdGlwbHku
|
170
|
+
cmI=
|
171
|
+
- !binary |-
|
172
|
+
bGliL2F2bTIvYWJjL29wY29kZXMvYXJpdGhtZXRpYy9hczNfbXVsdGlwbHlf
|
173
|
+
aS5yYg==
|
174
|
+
- !binary |-
|
175
|
+
bGliL2F2bTIvYWJjL29wY29kZXMvYXJpdGhtZXRpYy9hczNfbmVnYXRlLnJi
|
176
|
+
- !binary |-
|
177
|
+
bGliL2F2bTIvYWJjL29wY29kZXMvYXJpdGhtZXRpYy9hczNfbmVnYXRlX2ku
|
178
|
+
cmI=
|
179
|
+
- !binary |-
|
180
|
+
bGliL2F2bTIvYWJjL29wY29kZXMvYXJpdGhtZXRpYy9hczNfbm90LnJi
|
181
|
+
- !binary |-
|
182
|
+
bGliL2F2bTIvYWJjL29wY29kZXMvYXJpdGhtZXRpYy9hczNfc3RyaWN0ZXF1
|
183
|
+
YWxzLnJi
|
184
|
+
- !binary |-
|
185
|
+
bGliL2F2bTIvYWJjL29wY29kZXMvYXJpdGhtZXRpYy9hczNfc3VidHJhY3Qu
|
186
|
+
cmI=
|
187
|
+
- !binary |-
|
188
|
+
bGliL2F2bTIvYWJjL29wY29kZXMvYXJpdGhtZXRpYy9hczNfc3VidHJhY3Rf
|
189
|
+
aS5yYg==
|
190
|
+
- !binary |-
|
191
|
+
bGliL2F2bTIvYWJjL29wY29kZXMvYXJpdGhtZXRpY19vcGNvZGUucmI=
|
192
|
+
- !binary |-
|
193
|
+
bGliL2F2bTIvYWJjL29wY29kZXMvYml0d2lzZS9hczNfYml0YW5kLnJi
|
194
|
+
- !binary |-
|
195
|
+
bGliL2F2bTIvYWJjL29wY29kZXMvYml0d2lzZS9hczNfYml0bm90LnJi
|
196
|
+
- !binary |-
|
197
|
+
bGliL2F2bTIvYWJjL29wY29kZXMvYml0d2lzZS9hczNfYml0b3IucmI=
|
198
|
+
- !binary |-
|
199
|
+
bGliL2F2bTIvYWJjL29wY29kZXMvYml0d2lzZS9hczNfYml0eG9yLnJi
|
200
|
+
- !binary |-
|
201
|
+
bGliL2F2bTIvYWJjL29wY29kZXMvYml0d2lzZS9hczNfbHNoaWZ0LnJi
|
202
|
+
- !binary |-
|
203
|
+
bGliL2F2bTIvYWJjL29wY29kZXMvYml0d2lzZS9hczNfcnNoaWZ0LnJi
|
204
|
+
- !binary |-
|
205
|
+
bGliL2F2bTIvYWJjL29wY29kZXMvYml0d2lzZS9hczNfdXJzaGlmdC5yYg==
|
206
|
+
- !binary |-
|
207
|
+
bGliL2F2bTIvYWJjL29wY29kZXMvYml0d2lzZV9vcGNvZGUucmI=
|
208
|
+
- !binary |-
|
209
|
+
bGliL2F2bTIvYWJjL29wY29kZXMvY29udGV4dHVhbF9vcGNvZGUucmI=
|
210
|
+
- !binary |-
|
211
|
+
bGliL2F2bTIvYWJjL29wY29kZXMvY29udHJvbF90cmFuc2Zlci9hczNfaWZl
|
212
|
+
cS5yYg==
|
213
|
+
- !binary |-
|
214
|
+
bGliL2F2bTIvYWJjL29wY29kZXMvY29udHJvbF90cmFuc2Zlci9hczNfaWZm
|
215
|
+
YWxzZS5yYg==
|
216
|
+
- !binary |-
|
217
|
+
bGliL2F2bTIvYWJjL29wY29kZXMvY29udHJvbF90cmFuc2Zlci9hczNfaWZn
|
218
|
+
ZS5yYg==
|
219
|
+
- !binary |-
|
220
|
+
bGliL2F2bTIvYWJjL29wY29kZXMvY29udHJvbF90cmFuc2Zlci9hczNfaWZn
|
221
|
+
dC5yYg==
|
222
|
+
- !binary |-
|
223
|
+
bGliL2F2bTIvYWJjL29wY29kZXMvY29udHJvbF90cmFuc2Zlci9hczNfaWZs
|
224
|
+
ZS5yYg==
|
225
|
+
- !binary |-
|
226
|
+
bGliL2F2bTIvYWJjL29wY29kZXMvY29udHJvbF90cmFuc2Zlci9hczNfaWZs
|
227
|
+
dC5yYg==
|
228
|
+
- !binary |-
|
229
|
+
bGliL2F2bTIvYWJjL29wY29kZXMvY29udHJvbF90cmFuc2Zlci9hczNfaWZu
|
230
|
+
ZS5yYg==
|
231
|
+
- !binary |-
|
232
|
+
bGliL2F2bTIvYWJjL29wY29kZXMvY29udHJvbF90cmFuc2Zlci9hczNfaWZu
|
233
|
+
Z2UucmI=
|
234
|
+
- !binary |-
|
235
|
+
bGliL2F2bTIvYWJjL29wY29kZXMvY29udHJvbF90cmFuc2Zlci9hczNfaWZu
|
236
|
+
Z3QucmI=
|
237
|
+
- !binary |-
|
238
|
+
bGliL2F2bTIvYWJjL29wY29kZXMvY29udHJvbF90cmFuc2Zlci9hczNfaWZu
|
239
|
+
bGUucmI=
|
240
|
+
- !binary |-
|
241
|
+
bGliL2F2bTIvYWJjL29wY29kZXMvY29udHJvbF90cmFuc2Zlci9hczNfaWZu
|
242
|
+
bHQucmI=
|
243
|
+
- !binary |-
|
244
|
+
bGliL2F2bTIvYWJjL29wY29kZXMvY29udHJvbF90cmFuc2Zlci9hczNfaWZz
|
245
|
+
dHJpY3RlcS5yYg==
|
246
|
+
- !binary |-
|
247
|
+
bGliL2F2bTIvYWJjL29wY29kZXMvY29udHJvbF90cmFuc2Zlci9hczNfaWZz
|
248
|
+
dHJpY3RuZS5yYg==
|
249
|
+
- !binary |-
|
250
|
+
bGliL2F2bTIvYWJjL29wY29kZXMvY29udHJvbF90cmFuc2Zlci9hczNfaWZ0
|
251
|
+
cnVlLnJi
|
252
|
+
- !binary |-
|
253
|
+
bGliL2F2bTIvYWJjL29wY29kZXMvY29udHJvbF90cmFuc2Zlci9hczNfanVt
|
254
|
+
cC5yYg==
|
255
|
+
- !binary |-
|
256
|
+
bGliL2F2bTIvYWJjL29wY29kZXMvY29udHJvbF90cmFuc2Zlci9hczNfbG9v
|
257
|
+
a3Vwc3dpdGNoLnJi
|
258
|
+
- !binary |-
|
259
|
+
bGliL2F2bTIvYWJjL29wY29kZXMvY29udHJvbF90cmFuc2Zlcl9vcGNvZGUu
|
260
|
+
cmI=
|
261
|
+
- !binary |-
|
262
|
+
bGliL2F2bTIvYWJjL29wY29kZXMvZXhjZXB0aW9uL2FzM19uZXdjYXRjaC5y
|
263
|
+
Yg==
|
264
|
+
- !binary |-
|
265
|
+
bGliL2F2bTIvYWJjL29wY29kZXMvZXhjZXB0aW9uX29wY29kZS5yYg==
|
266
|
+
- !binary |-
|
267
|
+
bGliL2F2bTIvYWJjL29wY29kZXMvZnVuY3Rpb25faW52b2NhdGlvbi9hczNf
|
268
|
+
Y2FsbC5yYg==
|
269
|
+
- !binary |-
|
270
|
+
bGliL2F2bTIvYWJjL29wY29kZXMvZnVuY3Rpb25faW52b2NhdGlvbi9hczNf
|
271
|
+
Y2FsbHByb3BlcnR5LnJi
|
272
|
+
- !binary |-
|
273
|
+
bGliL2F2bTIvYWJjL29wY29kZXMvZnVuY3Rpb25faW52b2NhdGlvbi9hczNf
|
274
|
+
Y2FsbHByb3B2b2lkLnJi
|
275
|
+
- !binary |-
|
276
|
+
bGliL2F2bTIvYWJjL29wY29kZXMvZnVuY3Rpb25faW52b2NhdGlvbi9hczNf
|
277
|
+
Y2FsbHN1cGVyLnJi
|
278
|
+
- !binary |-
|
279
|
+
bGliL2F2bTIvYWJjL29wY29kZXMvZnVuY3Rpb25faW52b2NhdGlvbi9hczNf
|
280
|
+
Y2FsbHN1cGVydm9pZC5yYg==
|
281
|
+
- !binary |-
|
282
|
+
bGliL2F2bTIvYWJjL29wY29kZXMvZnVuY3Rpb25faW52b2NhdGlvbl9vcGNv
|
283
|
+
ZGUucmI=
|
284
|
+
- !binary |-
|
285
|
+
bGliL2F2bTIvYWJjL29wY29kZXMvZnVuY3Rpb25fcmV0dXJuL2FzM19yZXR1
|
286
|
+
cm52YWx1ZS5yYg==
|
287
|
+
- !binary |-
|
288
|
+
bGliL2F2bTIvYWJjL29wY29kZXMvZnVuY3Rpb25fcmV0dXJuL2FzM19yZXR1
|
289
|
+
cm52b2lkLnJi
|
290
|
+
- !binary |-
|
291
|
+
bGliL2F2bTIvYWJjL29wY29kZXMvZnVuY3Rpb25fcmV0dXJuX29wY29kZS5y
|
292
|
+
Yg==
|
293
|
+
- !binary |-
|
294
|
+
bGliL2F2bTIvYWJjL29wY29kZXMvZ2VuZXJpYy9hczNfYXN0eXBlbGF0ZS5y
|
295
|
+
Yg==
|
296
|
+
- !binary |-
|
297
|
+
bGliL2F2bTIvYWJjL29wY29kZXMvZ2VuZXJpYy9hczNfY2hlY2tmaWx0ZXIu
|
298
|
+
cmI=
|
299
|
+
- !binary |-
|
300
|
+
bGliL2F2bTIvYWJjL29wY29kZXMvZ2VuZXJpYy9hczNfZHVwLnJi
|
301
|
+
- !binary |-
|
302
|
+
bGliL2F2bTIvYWJjL29wY29kZXMvZ2VuZXJpYy9hczNfZHhuc2xhdGUucmI=
|
303
|
+
- !binary |-
|
304
|
+
bGliL2F2bTIvYWJjL29wY29kZXMvZ2VuZXJpYy9hczNfZXNjeGF0dHIucmI=
|
305
|
+
- !binary |-
|
306
|
+
bGliL2F2bTIvYWJjL29wY29kZXMvZ2VuZXJpYy9hczNfZ2V0Z2xvYmFsc2Nv
|
307
|
+
cGUucmI=
|
308
|
+
- !binary |-
|
309
|
+
bGliL2F2bTIvYWJjL29wY29kZXMvZ2VuZXJpYy9hczNfZ2V0bGV4LnJi
|
310
|
+
- !binary |-
|
311
|
+
bGliL2F2bTIvYWJjL29wY29kZXMvZ2VuZXJpYy9hczNfZ2V0c2NvcGVvYmpl
|
312
|
+
Y3QucmI=
|
313
|
+
- !binary |-
|
314
|
+
bGliL2F2bTIvYWJjL29wY29kZXMvZ2VuZXJpYy9hczNfZ2V0c2xvdC5yYg==
|
315
|
+
- !binary |-
|
316
|
+
bGliL2F2bTIvYWJjL29wY29kZXMvZ2VuZXJpYy9hczNfaGFzbmV4dC5yYg==
|
317
|
+
- !binary |-
|
318
|
+
bGliL2F2bTIvYWJjL29wY29kZXMvZ2VuZXJpYy9hczNfaGFzbmV4dDIucmI=
|
319
|
+
- !binary |-
|
320
|
+
bGliL2F2bTIvYWJjL29wY29kZXMvZ2VuZXJpYy9hczNfaW4ucmI=
|
321
|
+
- !binary |-
|
322
|
+
bGliL2F2bTIvYWJjL29wY29kZXMvZ2VuZXJpYy9hczNfaW5zdGFuY2VvZi5y
|
323
|
+
Yg==
|
324
|
+
- !binary |-
|
325
|
+
bGliL2F2bTIvYWJjL29wY29kZXMvZ2VuZXJpYy9hczNfaXN0eXBlbGF0ZS5y
|
326
|
+
Yg==
|
327
|
+
- !binary |-
|
328
|
+
bGliL2F2bTIvYWJjL29wY29kZXMvZ2VuZXJpYy9hczNfa2lsbC5yYg==
|
329
|
+
- !binary |-
|
330
|
+
bGliL2F2bTIvYWJjL29wY29kZXMvZ2VuZXJpYy9hczNfbGFiZWwucmI=
|
331
|
+
- !binary |-
|
332
|
+
bGliL2F2bTIvYWJjL29wY29kZXMvZ2VuZXJpYy9hczNfbmV4dG5hbWUucmI=
|
333
|
+
- !binary |-
|
334
|
+
bGliL2F2bTIvYWJjL29wY29kZXMvZ2VuZXJpYy9hczNfbmV4dHZhbHVlLnJi
|
335
|
+
- !binary |-
|
336
|
+
bGliL2F2bTIvYWJjL29wY29kZXMvZ2VuZXJpYy9hczNfbm9wLnJi
|
337
|
+
- !binary |-
|
338
|
+
bGliL2F2bTIvYWJjL29wY29kZXMvZ2VuZXJpYy9hczNfcG9wLnJi
|
339
|
+
- !binary |-
|
340
|
+
bGliL2F2bTIvYWJjL29wY29kZXMvZ2VuZXJpYy9hczNfcG9wc2NvcGUucmI=
|
341
|
+
- !binary |-
|
342
|
+
bGliL2F2bTIvYWJjL29wY29kZXMvZ2VuZXJpYy9hczNfc2V0c2xvdC5yYg==
|
343
|
+
- !binary |-
|
344
|
+
bGliL2F2bTIvYWJjL29wY29kZXMvZ2VuZXJpYy9hczNfc3dhcC5yYg==
|
345
|
+
- !binary |-
|
346
|
+
bGliL2F2bTIvYWJjL29wY29kZXMvZ2VuZXJpYy9hczNfdGhyb3cucmI=
|
347
|
+
- !binary |-
|
348
|
+
bGliL2F2bTIvYWJjL29wY29kZXMvZ2VuZXJpYy9hczNfdHlwZW9mLnJi
|
349
|
+
- !binary |-
|
350
|
+
bGliL2F2bTIvYWJjL29wY29kZXMvbG9hZF9zdG9yZS9hczNfZ2V0bG9jYWwu
|
351
|
+
cmI=
|
352
|
+
- !binary |-
|
353
|
+
bGliL2F2bTIvYWJjL29wY29kZXMvbG9hZF9zdG9yZS9hczNfZ2V0bG9jYWxf
|
354
|
+
MC5yYg==
|
355
|
+
- !binary |-
|
356
|
+
bGliL2F2bTIvYWJjL29wY29kZXMvbG9hZF9zdG9yZS9hczNfZ2V0bG9jYWxf
|
357
|
+
MS5yYg==
|
358
|
+
- !binary |-
|
359
|
+
bGliL2F2bTIvYWJjL29wY29kZXMvbG9hZF9zdG9yZS9hczNfZ2V0bG9jYWxf
|
360
|
+
Mi5yYg==
|
361
|
+
- !binary |-
|
362
|
+
bGliL2F2bTIvYWJjL29wY29kZXMvbG9hZF9zdG9yZS9hczNfZ2V0bG9jYWxf
|
363
|
+
My5yYg==
|
364
|
+
- !binary |-
|
365
|
+
bGliL2F2bTIvYWJjL29wY29kZXMvbG9hZF9zdG9yZS9hczNfc2V0bG9jYWwu
|
366
|
+
cmI=
|
367
|
+
- !binary |-
|
368
|
+
bGliL2F2bTIvYWJjL29wY29kZXMvbG9hZF9zdG9yZS9hczNfc2V0bG9jYWxf
|
369
|
+
MC5yYg==
|
370
|
+
- !binary |-
|
371
|
+
bGliL2F2bTIvYWJjL29wY29kZXMvbG9hZF9zdG9yZS9hczNfc2V0bG9jYWxf
|
372
|
+
MS5yYg==
|
373
|
+
- !binary |-
|
374
|
+
bGliL2F2bTIvYWJjL29wY29kZXMvbG9hZF9zdG9yZS9hczNfc2V0bG9jYWxf
|
375
|
+
Mi5yYg==
|
376
|
+
- !binary |-
|
377
|
+
bGliL2F2bTIvYWJjL29wY29kZXMvbG9hZF9zdG9yZS9hczNfc2V0bG9jYWxf
|
378
|
+
My5yYg==
|
379
|
+
- !binary |-
|
380
|
+
bGliL2F2bTIvYWJjL29wY29kZXMvbG9hZF9zdG9yZV9vcGNvZGUucmI=
|
381
|
+
- !binary |-
|
382
|
+
bGliL2F2bTIvYWJjL29wY29kZXMvb2JqZWN0X21hbmlwdWxhdGlvbi9hczNf
|
383
|
+
Y29uc3RydWN0LnJi
|
384
|
+
- !binary |-
|
385
|
+
bGliL2F2bTIvYWJjL29wY29kZXMvb2JqZWN0X21hbmlwdWxhdGlvbi9hczNf
|
386
|
+
Y29uc3RydWN0c3VwZXIucmI=
|
387
|
+
- !binary |-
|
388
|
+
bGliL2F2bTIvYWJjL29wY29kZXMvb2JqZWN0X21hbmlwdWxhdGlvbi9hczNf
|
389
|
+
bmV3YWN0aXZhdGlvbi5yYg==
|
390
|
+
- !binary |-
|
391
|
+
bGliL2F2bTIvYWJjL29wY29kZXMvb2JqZWN0X21hbmlwdWxhdGlvbi9hczNf
|
392
|
+
bmV3YXJyYXkucmI=
|
393
|
+
- !binary |-
|
394
|
+
bGliL2F2bTIvYWJjL29wY29kZXMvb2JqZWN0X21hbmlwdWxhdGlvbi9hczNf
|
395
|
+
bmV3Y2xhc3MucmI=
|
396
|
+
- !binary |-
|
397
|
+
bGliL2F2bTIvYWJjL29wY29kZXMvb2JqZWN0X21hbmlwdWxhdGlvbi9hczNf
|
398
|
+
bmV3ZnVuY3Rpb24ucmI=
|
399
|
+
- !binary |-
|
400
|
+
bGliL2F2bTIvYWJjL29wY29kZXMvb2JqZWN0X21hbmlwdWxhdGlvbi9hczNf
|
401
|
+
bmV3b2JqZWN0LnJi
|
402
|
+
- !binary |-
|
403
|
+
bGliL2F2bTIvYWJjL29wY29kZXMvb2JqZWN0X21hbmlwdWxhdGlvbl9vcGNv
|
404
|
+
ZGUucmI=
|
405
|
+
- !binary |-
|
406
|
+
bGliL2F2bTIvYWJjL29wY29kZXMvb3Bjb2RlLnJi
|
407
|
+
- !binary |-
|
408
|
+
bGliL2F2bTIvYWJjL29wY29kZXMvcHJvcGVydHkvYXMzX2NvbnN0cnVjdHBy
|
409
|
+
b3AucmI=
|
410
|
+
- !binary |-
|
411
|
+
bGliL2F2bTIvYWJjL29wY29kZXMvcHJvcGVydHkvYXMzX2RlbGV0ZXByb3Bl
|
412
|
+
cnR5LnJi
|
413
|
+
- !binary |-
|
414
|
+
bGliL2F2bTIvYWJjL29wY29kZXMvcHJvcGVydHkvYXMzX2ZpbmRwcm9wZXJ0
|
415
|
+
eS5yYg==
|
416
|
+
- !binary |-
|
417
|
+
bGliL2F2bTIvYWJjL29wY29kZXMvcHJvcGVydHkvYXMzX2ZpbmRwcm9wc3Ry
|
418
|
+
aWN0LnJi
|
419
|
+
- !binary |-
|
420
|
+
bGliL2F2bTIvYWJjL29wY29kZXMvcHJvcGVydHkvYXMzX2dldGRlc2NlbmRh
|
421
|
+
bnRzLnJi
|
422
|
+
- !binary |-
|
423
|
+
bGliL2F2bTIvYWJjL29wY29kZXMvcHJvcGVydHkvYXMzX2dldHByb3BlcnR5
|
424
|
+
LnJi
|
425
|
+
- !binary |-
|
426
|
+
bGliL2F2bTIvYWJjL29wY29kZXMvcHJvcGVydHkvYXMzX2dldHN1cGVyLnJi
|
427
|
+
- !binary |-
|
428
|
+
bGliL2F2bTIvYWJjL29wY29kZXMvcHJvcGVydHkvYXMzX2luaXRwcm9wZXJ0
|
429
|
+
eS5yYg==
|
430
|
+
- !binary |-
|
431
|
+
bGliL2F2bTIvYWJjL29wY29kZXMvcHJvcGVydHkvYXMzX3NldHByb3BlcnR5
|
432
|
+
LnJi
|
433
|
+
- !binary |-
|
434
|
+
bGliL2F2bTIvYWJjL29wY29kZXMvcHJvcGVydHkvYXMzX3NldHN1cGVyLnJi
|
435
|
+
- !binary |-
|
436
|
+
bGliL2F2bTIvYWJjL29wY29kZXMvcHJvcGVydHlfb3Bjb2RlLnJi
|
437
|
+
- !binary |-
|
438
|
+
bGliL2F2bTIvYWJjL29wY29kZXMvcHVzaF9saXRlcmFsL2FzM19wdXNoYnl0
|
439
|
+
ZS5yYg==
|
440
|
+
- !binary |-
|
441
|
+
bGliL2F2bTIvYWJjL29wY29kZXMvcHVzaF9saXRlcmFsL2FzM19wdXNoZG91
|
442
|
+
YmxlLnJi
|
443
|
+
- !binary |-
|
444
|
+
bGliL2F2bTIvYWJjL29wY29kZXMvcHVzaF9saXRlcmFsL2FzM19wdXNoZmFs
|
445
|
+
c2UucmI=
|
446
|
+
- !binary |-
|
447
|
+
bGliL2F2bTIvYWJjL29wY29kZXMvcHVzaF9saXRlcmFsL2FzM19wdXNoaW50
|
448
|
+
LnJi
|
449
|
+
- !binary |-
|
450
|
+
bGliL2F2bTIvYWJjL29wY29kZXMvcHVzaF9saXRlcmFsL2FzM19wdXNobmFu
|
451
|
+
LnJi
|
452
|
+
- !binary |-
|
453
|
+
bGliL2F2bTIvYWJjL29wY29kZXMvcHVzaF9saXRlcmFsL2FzM19wdXNobnVs
|
454
|
+
bC5yYg==
|
455
|
+
- !binary |-
|
456
|
+
bGliL2F2bTIvYWJjL29wY29kZXMvcHVzaF9saXRlcmFsL2FzM19wdXNoc2Nv
|
457
|
+
cGUucmI=
|
458
|
+
- !binary |-
|
459
|
+
bGliL2F2bTIvYWJjL29wY29kZXMvcHVzaF9saXRlcmFsL2FzM19wdXNoc2hv
|
460
|
+
cnQucmI=
|
461
|
+
- !binary |-
|
462
|
+
bGliL2F2bTIvYWJjL29wY29kZXMvcHVzaF9saXRlcmFsL2FzM19wdXNoc3Ry
|
463
|
+
aW5nLnJi
|
464
|
+
- !binary |-
|
465
|
+
bGliL2F2bTIvYWJjL29wY29kZXMvcHVzaF9saXRlcmFsL2FzM19wdXNodHJ1
|
466
|
+
ZS5yYg==
|
467
|
+
- !binary |-
|
468
|
+
bGliL2F2bTIvYWJjL29wY29kZXMvcHVzaF9saXRlcmFsL2FzM19wdXNodW5k
|
469
|
+
ZWZpbmVkLnJi
|
470
|
+
- !binary |-
|
471
|
+
bGliL2F2bTIvYWJjL29wY29kZXMvcHVzaF9saXRlcmFsL2FzM19wdXNod2l0
|
472
|
+
aC5yYg==
|
473
|
+
- !binary |-
|
474
|
+
bGliL2F2bTIvYWJjL29wY29kZXMvcHVzaF9saXRlcmFsX29wY29kZS5yYg==
|
475
|
+
- !binary |-
|
476
|
+
bGliL2F2bTIvYWJjL29wY29kZXMvdHlwZV9jb252ZXJzaW9uL2FzM19hcHBs
|
477
|
+
eXR5cGUucmI=
|
478
|
+
- !binary |-
|
479
|
+
bGliL2F2bTIvYWJjL29wY29kZXMvdHlwZV9jb252ZXJzaW9uL2FzM19jb2Vy
|
480
|
+
Y2UucmI=
|
481
|
+
- !binary |-
|
482
|
+
bGliL2F2bTIvYWJjL29wY29kZXMvdHlwZV9jb252ZXJzaW9uL2FzM19jb2Vy
|
483
|
+
Y2VfYS5yYg==
|
484
|
+
- !binary |-
|
485
|
+
bGliL2F2bTIvYWJjL29wY29kZXMvdHlwZV9jb252ZXJzaW9uL2FzM19jb2Vy
|
486
|
+
Y2VfYi5yYg==
|
487
|
+
- !binary |-
|
488
|
+
bGliL2F2bTIvYWJjL29wY29kZXMvdHlwZV9jb252ZXJzaW9uL2FzM19jb2Vy
|
489
|
+
Y2Vfcy5yYg==
|
490
|
+
- !binary |-
|
491
|
+
bGliL2F2bTIvYWJjL29wY29kZXMvdHlwZV9jb252ZXJzaW9uL2FzM19jb252
|
492
|
+
ZXJ0X2QucmI=
|
493
|
+
- !binary |-
|
494
|
+
bGliL2F2bTIvYWJjL29wY29kZXMvdHlwZV9jb252ZXJzaW9uL2FzM19jb252
|
495
|
+
ZXJ0X2kucmI=
|
496
|
+
- !binary |-
|
497
|
+
bGliL2F2bTIvYWJjL29wY29kZXMvdHlwZV9jb252ZXJzaW9uL2FzM19jb252
|
498
|
+
ZXJ0X28ucmI=
|
499
|
+
- !binary |-
|
500
|
+
bGliL2F2bTIvYWJjL29wY29kZXMvdHlwZV9jb252ZXJzaW9uL2FzM19jb252
|
501
|
+
ZXJ0X3MucmI=
|
502
|
+
- !binary |-
|
503
|
+
bGliL2F2bTIvYWJjL29wY29kZXMvdHlwZV9jb252ZXJzaW9uL2FzM19jb252
|
504
|
+
ZXJ0X3UucmI=
|
505
|
+
- !binary |-
|
506
|
+
bGliL2F2bTIvYWJjL29wY29kZXMvdHlwZV9jb252ZXJzaW9uX29wY29kZS5y
|
507
|
+
Yg==
|
508
|
+
- !binary |-
|
509
|
+
bGliL2F2bTIvYWJjL3ByaW1pdGl2ZXMvb3Bjb2RlX3NlcXVlbmNlLnJi
|
510
|
+
- !binary |-
|
511
|
+
bGliL2F2bTIvYWJjL3ByaW1pdGl2ZXMvcmVjb3JkLnJi
|
512
|
+
- !binary |-
|
513
|
+
bGliL2F2bTIvYmluYXJ5L2Nob2ljZV9kZWZpbml0aW9uLnJi
|
514
|
+
- !binary |-
|
515
|
+
bGliL2F2bTIvYmluYXJ5L3JlY29yZC5yYg==
|
516
|
+
- !binary |-
|
517
|
+
bGliL2F2bTIvdHJhbnNmb3JtLnJi
|
518
|
+
- !binary |-
|
519
|
+
bGliL2F2bTIvdHJhbnNmb3JtL2FzdF9idWlsZC5yYg==
|
520
|
+
- !binary |-
|
521
|
+
bGliL2F2bTIvdHJhbnNmb3JtL2FzdF9ub3JtYWxpemUucmI=
|
522
|
+
- !binary |-
|
523
|
+
bGliL2F2bTIvdmVyc2lvbi5yYg==
|
524
|
+
- !binary |-
|
525
|
+
dGVzdC9leGNlcHRpb24uYWJj
|
526
|
+
- !binary |-
|
527
|
+
dGVzdC9leGNlcHRpb24uYXM=
|
528
|
+
- !binary |-
|
529
|
+
dGVzdC9saXRlcmFsLmFiYw==
|
530
|
+
- !binary |-
|
531
|
+
dGVzdC9saXRlcmFsLmFz
|
532
|
+
- !binary |-
|
533
|
+
dGVzdC9sb2dpYy5hYmM=
|
534
|
+
- !binary |-
|
535
|
+
dGVzdC9sb2dpYy5hcw==
|
536
|
+
- !binary |-
|
537
|
+
dGVzdC9sb29wcy5hYmM=
|
538
|
+
- !binary |-
|
539
|
+
dGVzdC9sb29wcy5hcw==
|
540
|
+
- !binary |-
|
541
|
+
dGVzdC9udW1iZXIuYWJj
|
542
|
+
- !binary |-
|
543
|
+
dGVzdC9udW1iZXIuYXM=
|
544
|
+
- !binary |-
|
545
|
+
dGVzdC9zd2l0Y2guYWJj
|
546
|
+
- !binary |-
|
547
|
+
dGVzdC9zd2l0Y2guYXM=
|
548
|
+
- !binary |-
|
549
|
+
dGVzdC90ZXJuYXJ5LmFiYw==
|
550
|
+
- !binary |-
|
551
|
+
dGVzdC90ZXJuYXJ5LmFz
|
552
|
+
homepage: http://github.com/whitequark/furnace-avm2
|
553
|
+
licenses: []
|
554
|
+
post_install_message:
|
555
|
+
rdoc_options: []
|
556
|
+
require_paths:
|
557
|
+
- lib
|
558
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
559
|
+
requirements:
|
560
|
+
- - ! '>='
|
561
|
+
- !ruby/object:Gem::Version
|
562
|
+
version: !binary |-
|
563
|
+
MA==
|
564
|
+
none: false
|
565
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
566
|
+
requirements:
|
567
|
+
- - ! '>='
|
568
|
+
- !ruby/object:Gem::Version
|
569
|
+
version: !binary |-
|
570
|
+
MA==
|
571
|
+
none: false
|
572
|
+
requirements: []
|
573
|
+
rubyforge_project:
|
574
|
+
rubygems_version: 1.8.13
|
575
|
+
signing_key:
|
576
|
+
specification_version: 3
|
577
|
+
summary: AVM2 analysis framework based on Furnace
|
578
|
+
test_files: []
|
579
|
+
...
|