DannyB commited on
Commit
f2f541d
·
1 Parent(s): 8bdd9a5

Upgrade pipeline to include cross-language decoders, specifications, dependencies, and database offline in LLM capsule transmission via 67 packets

Browse files
This view is limited to 50 files because it contains too many changes.   See raw diff
Language-U-Browser.LLM CHANGED
Binary files a/Language-U-Browser.LLM and b/Language-U-Browser.LLM differ
 
VerifyLanguageU.java CHANGED
@@ -1,342 +1,347 @@
1
- // ZYMATICA | Language-U Cross-Language Verification Engine (Java)
2
- // Watermark: ip zymatica.space | astronautshe.com
3
-
4
- import java.io.File;
5
- import java.io.FileInputStream;
6
- import java.io.IOException;
7
- import java.util.ArrayList;
8
- import java.util.List;
9
-
10
- public class VerifyLanguageU {
11
-
12
- static class SparseTransition {
13
- long key;
14
- int sym;
15
- long count;
16
- SparseTransition(long key, int sym, long count) {
17
- this.key = key;
18
- this.sym = sym;
19
- this.count = count;
20
- }
21
- }
22
-
23
- static class RadicalPredictor {
24
- long alpha;
25
- long weight;
26
- List<SparseTransition> transRC = new ArrayList<>();
27
- List<SparseTransition> transRF = new ArrayList<>();
28
- List<SparseTransition> transRA = new ArrayList<>();
29
- int prevRC = 0;
30
- int prevRF = 0;
31
- int prevRA = 0;
32
-
33
- RadicalPredictor(long alpha, long weight) {
34
- this.alpha = alpha;
35
- this.weight = weight;
36
- }
37
-
38
- void observe(int rc, int rf, int ra) {
39
- long keyRC = prevRC;
40
- boolean found = false;
41
- for (SparseTransition entry : transRC) {
42
- if (entry.key == keyRC && entry.sym == rc) {
43
- entry.count += weight;
44
- found = true;
45
- break;
46
- }
47
- }
48
- if (!found && transRC.size() < 256) {
49
- transRC.add(new SparseTransition(keyRC, rc, weight));
50
- }
51
-
52
- long keyRF = ((long)rc << 8) | prevRF;
53
- found = false;
54
- for (SparseTransition entry : transRF) {
55
- if (entry.key == keyRF && entry.sym == rf) {
56
- entry.count += weight;
57
- found = true;
58
- break;
59
- }
60
- }
61
- if (!found && transRF.size() < 256) {
62
- transRF.add(new SparseTransition(keyRF, rf, weight));
63
- }
64
-
65
- long keyRA = ((long)rc << 16) | ((long)rf << 8) | prevRA;
66
- found = false;
67
- for (SparseTransition entry : transRA) {
68
- if (entry.key == keyRA && entry.sym == ra) {
69
- entry.count += weight;
70
- found = true;
71
- break;
72
- }
73
- }
74
- if (!found && transRA.size() < 256) {
75
- transRA.add(new SparseTransition(keyRA, ra, weight));
76
- }
77
-
78
- prevRC = rc;
79
- prevRF = rf;
80
- prevRA = ra;
81
- }
82
-
83
- long[] getCumFreqsRC(int prevRC) {
84
- long[] freqs = new long[256];
85
- for (int i = 0; i < 256; i++) freqs[i] = alpha;
86
- for (SparseTransition entry : transRC) {
87
- if (entry.key == prevRC) {
88
- freqs[entry.sym] += entry.count;
89
- }
90
- }
91
- long[] cumFreqs = new long[257];
92
- for (int i = 0; i < 256; i++) {
93
- cumFreqs[i + 1] = cumFreqs[i] + freqs[i];
94
- }
95
- return cumFreqs;
96
- }
97
-
98
- long[] getCumFreqsRF(int currRC, int prevRF) {
99
- long[] freqs = new long[256];
100
- for (int i = 0; i < 256; i++) freqs[i] = alpha;
101
- long key = ((long)currRC << 8) | prevRF;
102
- for (SparseTransition entry : transRF) {
103
- if (entry.key == key) {
104
- freqs[entry.sym] += entry.count;
105
- }
106
- }
107
- long[] cumFreqs = new long[257];
108
- for (int i = 0; i < 256; i++) {
109
- cumFreqs[i + 1] = cumFreqs[i] + freqs[i];
110
- }
111
- return cumFreqs;
112
- }
113
-
114
- long[] getCumFreqsRA(int currRC, int currRF, int prevRA) {
115
- long[] freqs = new long[256];
116
- for (int i = 0; i < 256; i++) freqs[i] = alpha;
117
- long key = ((long)currRC << 16) | ((long)currRF << 8) | prevRA;
118
- for (SparseTransition entry : transRA) {
119
- if (entry.key == key) {
120
- freqs[entry.sym] += entry.count;
121
- }
122
- }
123
- long[] cumFreqs = new long[257];
124
- for (int i = 0; i < 256; i++) {
125
- cumFreqs[i + 1] = cumFreqs[i] + freqs[i];
126
- }
127
- return cumFreqs;
128
- }
129
- }
130
-
131
- static class BitReader {
132
- byte[] buffer;
133
- int bitIndex = 0;
134
- int totalBits;
135
-
136
- BitReader(byte[] buffer) {
137
- this.buffer = buffer;
138
- this.totalBits = buffer.length * 8;
139
- }
140
-
141
- int readBit() {
142
- if (bitIndex >= totalBits) return 0;
143
- int bytePos = bitIndex / 8;
144
- int bitPos = 7 - (bitIndex % 8);
145
- int bit = (buffer[bytePos] >> bitPos) & 1;
146
- bitIndex++;
147
- return bit;
148
- }
149
- }
150
-
151
- static class ConceptRadicals {
152
- int rc, rf, ra;
153
- ConceptRadicals(int rc, int rf, int ra) {
154
- this.rc = rc; this.rf = rf; this.ra = ra;
155
- }
156
- }
157
-
158
- static int readVarint(byte[] data, int[] state) {
159
- int val = 0;
160
- int shift = 0;
161
- while (true) {
162
- if (state[0] >= data.length) break;
163
- int b = data[state[0]] & 0xFF;
164
- state[0]++;
165
- val |= (b & 0x7F) << shift;
166
- if ((b & 0x80) == 0) break;
167
- shift += 7;
168
- }
169
- return val;
170
- }
171
-
172
- static List<String> decompressVocab(byte[] data, int numTokens) {
173
- List<String> tokens = new ArrayList<>();
174
- int[] state = {0};
175
- String prev = "";
176
- for (int i = 0; i < numTokens; i++) {
177
- if (state[0] >= data.length) break;
178
- int common = readVarint(data, state);
179
- int suffixLen = readVarint(data, state);
180
- byte[] suffixBytes = new byte[suffixLen];
181
- System.arraycopy(data, state[0], suffixBytes, 0, suffixLen);
182
- state[0] += suffixLen;
183
-
184
- String suffix = new String(suffixBytes);
185
- String token = prev.substring(0, Math.min(common, prev.length())) + suffix;
186
- tokens.add(token);
187
- prev = token;
188
- }
189
- return tokens;
190
- }
191
-
192
- static List<ConceptRadicals> decode(byte[] encodedBytes, int numConcepts, long alpha, long weight) {
193
- RadicalPredictor pred = new RadicalPredictor(alpha, weight);
194
- BitReader r = new BitReader(encodedBytes);
195
-
196
- long value = 0;
197
- for (int i = 0; i < 32; i++) {
198
- value = (value << 1) | r.readBit();
199
- }
200
-
201
- long low = 0;
202
- long high = 0xFFFFFFFFL;
203
- List<ConceptRadicals> decoded = new ArrayList<>();
204
-
205
- for (int cIdx = 0; cIdx < numConcepts; cIdx++) {
206
- int prevRC = pred.prevRC;
207
- int prevRF = pred.prevRF;
208
- int prevRA = pred.prevRA;
209
- int[] symbols = new int[3];
210
-
211
- for (int step = 0; step < 3; step++) {
212
- long[] cumFreqs;
213
- if (step == 0) {
214
- cumFreqs = pred.getCumFreqsRC(prevRC);
215
- } else if (step == 1) {
216
- cumFreqs = pred.getCumFreqsRF(symbols[0], prevRF);
217
- } else {
218
- cumFreqs = pred.getCumFreqsRA(symbols[0], symbols[1], prevRA);
219
- }
220
-
221
- long total = cumFreqs[256];
222
- long rangeWidth = high - low + 1;
223
- long scaledVal = (((value - low) + 1) * total - 1) / rangeWidth;
224
-
225
- int sym = 0;
226
- int lIdx = 0, rIdx = 255;
227
- while (lIdx <= rIdx) {
228
- int mIdx = (lIdx + rIdx) / 2;
229
- if (cumFreqs[mIdx] <= scaledVal && scaledVal < cumFreqs[mIdx + 1]) {
230
- sym = mIdx;
231
- break;
232
- } else if (scaledVal >= cumFreqs[mIdx + 1]) {
233
- lIdx = mIdx + 1;
234
- } else {
235
- rIdx = mIdx - 1;
236
- }
237
- }
238
-
239
- symbols[step] = sym;
240
- long cumLow = cumFreqs[sym];
241
- long cumHigh = cumFreqs[sym + 1];
242
-
243
- high = low + (rangeWidth * cumHigh) / total - 1;
244
- low = low + (rangeWidth * cumLow) / total;
245
-
246
- while (true) {
247
- if (high < 0x80000000L) {
248
- low <<= 1;
249
- high = (high << 1) | 1;
250
- value = (value << 1) | r.readBit();
251
- } else if (low >= 0x80000000L) {
252
- low = (low - 0x80000000L) << 1;
253
- high = ((high - 0x80000000L) << 1) | 1;
254
- value = ((value - 0x80000000L) << 1) | r.readBit();
255
- } else if (low >= 0x40000000L && high < 0xC0000000L) {
256
- low = (low - 0x40000000L) << 1;
257
- high = ((high - 0x40000000L) << 1) | 1;
258
- value = ((value - 0x40000000L) << 1) | r.readBit();
259
- } else {
260
- break;
261
- }
262
- low &= 0xFFFFFFFFL;
263
- high &= 0xFFFFFFFFL;
264
- value &= 0xFFFFFFFFL;
265
- }
266
- }
267
-
268
- decoded.add(new ConceptRadicals(symbols[0], symbols[1], symbols[2]));
269
- pred.observe(symbols[0], symbols[1], symbols[2]);
270
- }
271
- return decoded;
272
- }
273
-
274
- public static void main(String[] args) throws IOException {
275
- System.out.println("======================================================================");
276
- System.out.println("ZYMATICA | Cross-Language Java Decompressor & Range-Decoder");
277
- System.out.println("======================================================================\n");
278
-
279
- File namesFile = new File("frameworks_names.bin");
280
- File coordsFile = new File("frameworks_coordinates.bin");
281
-
282
- if (!namesFile.exists() || !coordsFile.exists()) {
283
- System.err.println("[!] Error: Binary transport files not found. Run run_ultimate_pipeline.py first.");
284
- System.exit(1);
285
- }
286
-
287
- // 1. Read names binary
288
- byte[] namesBytes = new byte[(int) namesFile.length()];
289
- try (FileInputStream fis = new FileInputStream(namesFile)) {
290
- fis.read(namesBytes);
291
- }
292
-
293
- // 2. Read coordinates binary
294
- byte[] coordsBytes = new byte[(int) coordsFile.length()];
295
- try (FileInputStream fis = new FileInputStream(coordsFile)) {
296
- fis.read(coordsBytes);
297
- }
298
-
299
- // 3. Decompress vocabulary names
300
- List<String> names = decompressVocab(namesBytes, 49);
301
- System.out.println("[1] Java Vocab Decompression: SUCCESS (" + names.size() + " names restored).");
302
-
303
- // 4. Formulate expected radicals based on the same rules
304
- List<ConceptRadicals> expected = new ArrayList<>();
305
- for (String name : names) {
306
- int domain = 1;
307
- String lower = name.toLowerCase();
308
- if (lower.contains("pixi") || lower.contains("phaser") || lower.contains("away") || lower.contains("p5")) {
309
- domain = 2;
310
- } else if (lower.contains("scenejs") || lower.contains("glam") || lower.contains("deck") || lower.contains("cesium") || lower.contains("luma") || lower.contains("philo")) {
311
- domain = 7;
312
- }
313
- int rc = (domain << 4) | 2;
314
- int rf = (1 << 4) | 2;
315
- int ra = (15 << 4) | 12;
316
- expected.add(new ConceptRadicals(rc, rf, ra));
317
- }
318
-
319
- // 5. Decode radicals using Yang range decoder in Java
320
- List<ConceptRadicals> decoded = decode(coordsBytes, 49, 1, 128);
321
- System.out.println("[2] Java Yang Range Decoder execution: SUCCESS.");
322
-
323
- // 6. Assert exact equivalence (dynamic validation)
324
- boolean match = true;
325
- for (int i = 0; i < 49; i++) {
326
- ConceptRadicals exp = expected.get(i);
327
- ConceptRadicals dec = decoded.get(i);
328
- if (exp.rc != dec.rc || exp.rf != dec.rf || exp.ra != dec.ra) {
329
- System.err.println("[!] Mismatch at index " + i + " (" + names.get(i) + "): Expected RC=" + exp.rc + ", RF=" + exp.rf + ", RA=" + exp.ra + " | Decoded RC=" + dec.rc + ", RF=" + dec.rf + ", RA=" + dec.ra);
330
- match = false;
331
- break;
332
- }
333
- }
334
-
335
- if (match) {
336
- System.out.println("\n[SUCCESS] Java range-decoder verification: 100% MATCH!");
337
- } else {
338
- System.err.println("\n[ERROR] Java dynamic coordinate check failed!");
339
- System.exit(1);
340
- }
341
- }
342
- }
 
 
 
 
 
 
1
+ // ZYMATICA | Language-U Cross-Language Verification Engine (Java)
2
+ // Watermark: ip zymatica.space | astronautshe.com
3
+
4
+ import java.io.File;
5
+ import java.io.FileInputStream;
6
+ import java.io.IOException;
7
+ import java.util.ArrayList;
8
+ import java.util.List;
9
+
10
+ public class VerifyLanguageU {
11
+
12
+ static class SparseTransition {
13
+ long key;
14
+ int sym;
15
+ long count;
16
+ SparseTransition(long key, int sym, long count) {
17
+ this.key = key;
18
+ this.sym = sym;
19
+ this.count = count;
20
+ }
21
+ }
22
+
23
+ static class RadicalPredictor {
24
+ long alpha;
25
+ long weight;
26
+ List<SparseTransition> transRC = new ArrayList<>();
27
+ List<SparseTransition> transRF = new ArrayList<>();
28
+ List<SparseTransition> transRA = new ArrayList<>();
29
+ int prevRC = 0;
30
+ int prevRF = 0;
31
+ int prevRA = 0;
32
+
33
+ RadicalPredictor(long alpha, long weight) {
34
+ this.alpha = alpha;
35
+ this.weight = weight;
36
+ }
37
+
38
+ void observe(int rc, int rf, int ra) {
39
+ long keyRC = prevRC;
40
+ boolean found = false;
41
+ for (SparseTransition entry : transRC) {
42
+ if (entry.key == keyRC && entry.sym == rc) {
43
+ entry.count += weight;
44
+ found = true;
45
+ break;
46
+ }
47
+ }
48
+ if (!found && transRC.size() < 256) {
49
+ transRC.add(new SparseTransition(keyRC, rc, weight));
50
+ }
51
+
52
+ long keyRF = ((long)rc << 8) | prevRF;
53
+ found = false;
54
+ for (SparseTransition entry : transRF) {
55
+ if (entry.key == keyRF && entry.sym == rf) {
56
+ entry.count += weight;
57
+ found = true;
58
+ break;
59
+ }
60
+ }
61
+ if (!found && transRF.size() < 256) {
62
+ transRF.add(new SparseTransition(keyRF, rf, weight));
63
+ }
64
+
65
+ long keyRA = ((long)rc << 16) | ((long)rf << 8) | prevRA;
66
+ found = false;
67
+ for (SparseTransition entry : transRA) {
68
+ if (entry.key == keyRA && entry.sym == ra) {
69
+ entry.count += weight;
70
+ found = true;
71
+ break;
72
+ }
73
+ }
74
+ if (!found && transRA.size() < 256) {
75
+ transRA.add(new SparseTransition(keyRA, ra, weight));
76
+ }
77
+
78
+ prevRC = rc;
79
+ prevRF = rf;
80
+ prevRA = ra;
81
+ }
82
+
83
+ long[] getCumFreqsRC(int prevRC) {
84
+ long[] freqs = new long[256];
85
+ for (int i = 0; i < 256; i++) freqs[i] = alpha;
86
+ for (SparseTransition entry : transRC) {
87
+ if (entry.key == prevRC) {
88
+ freqs[entry.sym] += entry.count;
89
+ }
90
+ }
91
+ long[] cumFreqs = new long[257];
92
+ for (int i = 0; i < 256; i++) {
93
+ cumFreqs[i + 1] = cumFreqs[i] + freqs[i];
94
+ }
95
+ return cumFreqs;
96
+ }
97
+
98
+ long[] getCumFreqsRF(int currRC, int prevRF) {
99
+ long[] freqs = new long[256];
100
+ for (int i = 0; i < 256; i++) freqs[i] = alpha;
101
+ long key = ((long)currRC << 8) | prevRF;
102
+ for (SparseTransition entry : transRF) {
103
+ if (entry.key == key) {
104
+ freqs[entry.sym] += entry.count;
105
+ }
106
+ }
107
+ long[] cumFreqs = new long[257];
108
+ for (int i = 0; i < 256; i++) {
109
+ cumFreqs[i + 1] = cumFreqs[i] + freqs[i];
110
+ }
111
+ return cumFreqs;
112
+ }
113
+
114
+ long[] getCumFreqsRA(int currRC, int currRF, int prevRA) {
115
+ long[] freqs = new long[256];
116
+ for (int i = 0; i < 256; i++) freqs[i] = alpha;
117
+ long key = ((long)currRC << 16) | ((long)currRF << 8) | prevRA;
118
+ for (SparseTransition entry : transRA) {
119
+ if (entry.key == key) {
120
+ freqs[entry.sym] += entry.count;
121
+ }
122
+ }
123
+ long[] cumFreqs = new long[257];
124
+ for (int i = 0; i < 256; i++) {
125
+ cumFreqs[i + 1] = cumFreqs[i] + freqs[i];
126
+ }
127
+ return cumFreqs;
128
+ }
129
+ }
130
+
131
+ static class BitReader {
132
+ byte[] buffer;
133
+ int bitIndex = 0;
134
+ int totalBits;
135
+
136
+ BitReader(byte[] buffer) {
137
+ this.buffer = buffer;
138
+ this.totalBits = buffer.length * 8;
139
+ }
140
+
141
+ int readBit() {
142
+ if (bitIndex >= totalBits) return 0;
143
+ int bytePos = bitIndex / 8;
144
+ int bitPos = 7 - (bitIndex % 8);
145
+ int bit = (buffer[bytePos] >> bitPos) & 1;
146
+ bitIndex++;
147
+ return bit;
148
+ }
149
+ }
150
+
151
+ static class ConceptRadicals {
152
+ int rc, rf, ra;
153
+ ConceptRadicals(int rc, int rf, int ra) {
154
+ this.rc = rc; this.rf = rf; this.ra = ra;
155
+ }
156
+ }
157
+
158
+ static int readVarint(byte[] data, int[] state) {
159
+ int val = 0;
160
+ int shift = 0;
161
+ while (true) {
162
+ if (state[0] >= data.length) break;
163
+ int b = data[state[0]] & 0xFF;
164
+ state[0]++;
165
+ val |= (b & 0x7F) << shift;
166
+ if ((b & 0x80) == 0) break;
167
+ shift += 7;
168
+ }
169
+ return val;
170
+ }
171
+
172
+ static List<String> decompressVocab(byte[] data, int numTokens) {
173
+ List<String> tokens = new ArrayList<>();
174
+ int[] state = {0};
175
+ String prev = "";
176
+ for (int i = 0; i < numTokens; i++) {
177
+ if (state[0] >= data.length) break;
178
+ int common = readVarint(data, state);
179
+ int suffixLen = readVarint(data, state);
180
+ byte[] suffixBytes = new byte[suffixLen];
181
+ System.arraycopy(data, state[0], suffixBytes, 0, suffixLen);
182
+ state[0] += suffixLen;
183
+
184
+ String suffix = new String(suffixBytes);
185
+ String token = prev.substring(0, Math.min(common, prev.length())) + suffix;
186
+ tokens.add(token);
187
+ prev = token;
188
+ }
189
+ return tokens;
190
+ }
191
+
192
+ static List<ConceptRadicals> decode(byte[] encodedBytes, int numConcepts, long alpha, long weight) {
193
+ RadicalPredictor pred = new RadicalPredictor(alpha, weight);
194
+ BitReader r = new BitReader(encodedBytes);
195
+
196
+ long value = 0;
197
+ for (int i = 0; i < 32; i++) {
198
+ value = (value << 1) | r.readBit();
199
+ }
200
+
201
+ long low = 0;
202
+ long high = 0xFFFFFFFFL;
203
+ List<ConceptRadicals> decoded = new ArrayList<>();
204
+
205
+ for (int cIdx = 0; cIdx < numConcepts; cIdx++) {
206
+ int prevRC = pred.prevRC;
207
+ int prevRF = pred.prevRF;
208
+ int prevRA = pred.prevRA;
209
+ int[] symbols = new int[3];
210
+
211
+ for (int step = 0; step < 3; step++) {
212
+ long[] cumFreqs;
213
+ if (step == 0) {
214
+ cumFreqs = pred.getCumFreqsRC(prevRC);
215
+ } else if (step == 1) {
216
+ cumFreqs = pred.getCumFreqsRF(symbols[0], prevRF);
217
+ } else {
218
+ cumFreqs = pred.getCumFreqsRA(symbols[0], symbols[1], prevRA);
219
+ }
220
+
221
+ long total = cumFreqs[256];
222
+ long rangeWidth = high - low + 1;
223
+ long scaledVal = (((value - low) + 1) * total - 1) / rangeWidth;
224
+
225
+ int sym = 0;
226
+ int lIdx = 0, rIdx = 255;
227
+ while (lIdx <= rIdx) {
228
+ int mIdx = (lIdx + rIdx) / 2;
229
+ if (cumFreqs[mIdx] <= scaledVal && scaledVal < cumFreqs[mIdx + 1]) {
230
+ sym = mIdx;
231
+ break;
232
+ } else if (scaledVal >= cumFreqs[mIdx + 1]) {
233
+ lIdx = mIdx + 1;
234
+ } else {
235
+ rIdx = mIdx - 1;
236
+ }
237
+ }
238
+
239
+ symbols[step] = sym;
240
+ long cumLow = cumFreqs[sym];
241
+ long cumHigh = cumFreqs[sym + 1];
242
+
243
+ high = low + (rangeWidth * cumHigh) / total - 1;
244
+ low = low + (rangeWidth * cumLow) / total;
245
+
246
+ while (true) {
247
+ if (high < 0x80000000L) {
248
+ low <<= 1;
249
+ high = (high << 1) | 1;
250
+ value = (value << 1) | r.readBit();
251
+ } else if (low >= 0x80000000L) {
252
+ low = (low - 0x80000000L) << 1;
253
+ high = ((high - 0x80000000L) << 1) | 1;
254
+ value = ((value - 0x80000000L) << 1) | r.readBit();
255
+ } else if (low >= 0x40000000L && high < 0xC0000000L) {
256
+ low = (low - 0x40000000L) << 1;
257
+ high = ((high - 0x40000000L) << 1) | 1;
258
+ value = ((value - 0x40000000L) << 1) | r.readBit();
259
+ } else {
260
+ break;
261
+ }
262
+ low &= 0xFFFFFFFFL;
263
+ high &= 0xFFFFFFFFL;
264
+ value &= 0xFFFFFFFFL;
265
+ }
266
+ }
267
+
268
+ decoded.add(new ConceptRadicals(symbols[0], symbols[1], symbols[2]));
269
+ pred.observe(symbols[0], symbols[1], symbols[2]);
270
+ }
271
+ return decoded;
272
+ }
273
+
274
+ public static void main(String[] args) throws IOException {
275
+ System.out.println("======================================================================");
276
+ System.out.println("ZYMATICA | Cross-Language Java Decompressor & Range-Decoder");
277
+ System.out.println("======================================================================\n");
278
+
279
+ File namesFile = new File("Language-U-Browser/frameworks_names.bin");
280
+ File coordsFile = new File("Language-U-Browser/frameworks_coordinates.bin");
281
+
282
+ if (!namesFile.exists() || !coordsFile.exists()) {
283
+ namesFile = new File("frameworks_names.bin");
284
+ coordsFile = new File("frameworks_coordinates.bin");
285
+ }
286
+
287
+ if (!namesFile.exists() || !coordsFile.exists()) {
288
+ System.err.println("[!] Error: Binary transport files not found. Run run_ultimate_pipeline.py first.");
289
+ System.exit(1);
290
+ }
291
+
292
+ // 1. Read names binary
293
+ byte[] namesBytes = new byte[(int) namesFile.length()];
294
+ try (FileInputStream fis = new FileInputStream(namesFile)) {
295
+ fis.read(namesBytes);
296
+ }
297
+
298
+ // 2. Read coordinates binary
299
+ byte[] coordsBytes = new byte[(int) coordsFile.length()];
300
+ try (FileInputStream fis = new FileInputStream(coordsFile)) {
301
+ fis.read(coordsBytes);
302
+ }
303
+
304
+ // 3. Decompress vocabulary names
305
+ List<String> names = decompressVocab(namesBytes, 49);
306
+ System.out.println("[1] Java Vocab Decompression: SUCCESS (" + names.size() + " names restored).");
307
+
308
+ // 4. Formulate expected radicals based on the same rules
309
+ List<ConceptRadicals> expected = new ArrayList<>();
310
+ for (String name : names) {
311
+ int domain = 1;
312
+ String lower = name.toLowerCase();
313
+ if (lower.contains("pixi") || lower.contains("phaser") || lower.contains("away") || lower.contains("p5")) {
314
+ domain = 2;
315
+ } else if (lower.contains("scenejs") || lower.contains("glam") || lower.contains("deck") || lower.contains("cesium") || lower.contains("luma") || lower.contains("philo")) {
316
+ domain = 7;
317
+ }
318
+ int rc = (domain << 4) | 2;
319
+ int rf = (1 << 4) | 2;
320
+ int ra = (15 << 4) | 12;
321
+ expected.add(new ConceptRadicals(rc, rf, ra));
322
+ }
323
+
324
+ // 5. Decode radicals using Yang range decoder in Java
325
+ List<ConceptRadicals> decoded = decode(coordsBytes, 49, 1, 128);
326
+ System.out.println("[2] Java Yang Range Decoder execution: SUCCESS.");
327
+
328
+ // 6. Assert exact equivalence (dynamic validation)
329
+ boolean match = true;
330
+ for (int i = 0; i < 49; i++) {
331
+ ConceptRadicals exp = expected.get(i);
332
+ ConceptRadicals dec = decoded.get(i);
333
+ if (exp.rc != dec.rc || exp.rf != dec.rf || exp.ra != dec.ra) {
334
+ System.err.println("[!] Mismatch at index " + i + " (" + names.get(i) + "): Expected RC=" + exp.rc + ", RF=" + exp.rf + ", RA=" + exp.ra + " | Decoded RC=" + dec.rc + ", RF=" + dec.rf + ", RA=" + dec.ra);
335
+ match = false;
336
+ break;
337
+ }
338
+ }
339
+
340
+ if (match) {
341
+ System.out.println("\n[SUCCESS] Java range-decoder verification: 100% MATCH!");
342
+ } else {
343
+ System.err.println("\n[ERROR] Java dynamic coordinate check failed!");
344
+ System.exit(1);
345
+ }
346
+ }
347
+ }
frameworks_metadata.json CHANGED
@@ -1,8 +1,8 @@
1
  {
2
  "frameworks_count": 49,
3
- "compressed_size": 373,
4
- "sha256": "573acd8edada38afa62af9fd8d3621324342db37025b69d77ed45a74c1af24e4",
5
- "packets_count": 3,
6
  "svd_rank": 2,
7
  "dct_coefficients": 0,
8
  "singular_values": [
 
1
  {
2
  "frameworks_count": 49,
3
+ "compressed_size": 16601,
4
+ "sha256": "6015f0909358ae8674503b876b196e6744132dd2735e41c502f8443c6c36a83a",
5
+ "packets_count": 67,
6
  "svd_rank": 2,
7
  "dct_coefficients": 0,
8
  "singular_values": [
packets/packet_00.bin CHANGED
@@ -1,3 +1,3 @@
1
  version https://git-lfs.github.com/spec/v1
2
- oid sha256:75762b6bb5b34216a91d4d7143c038721a566aec276c3f8188eda42d46ce1d3e
3
  size 255
 
1
  version https://git-lfs.github.com/spec/v1
2
+ oid sha256:9865468f6352981c201ebe855ab38109467a3fe9f2654b753e1c2450cc8dd04a
3
  size 255
packets/packet_01.bin CHANGED
@@ -1,3 +1,3 @@
1
  version https://git-lfs.github.com/spec/v1
2
- oid sha256:d3bf3d0e022694b241d994ca2d0e8dda771dac90a63667a92bf56bc4bfd71466
3
  size 255
 
1
  version https://git-lfs.github.com/spec/v1
2
+ oid sha256:bc7d5c973e819713fc38515e459c8bc9fcfc50eb959bc17c3e87a97298cc9a2e
3
  size 255
packets/packet_02.bin ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:8abe2c3eb2961144a5831b5c6afae2288164f61be31f277ed6af05eb0fa58567
3
+ size 255
packets/packet_03.bin ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:a19b2da3b0fb5edd8d677591d7d1b156c04f13b4c267734733b5e78a0127a100
3
+ size 255
packets/packet_04.bin ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:7c93c5d20df2c3fdca02c75c869f5dad97a48362284881c66ebaf76df2c16aee
3
+ size 255
packets/packet_05.bin ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:e6af21cd23f59f3d8b209444fca03c4242aa3304a44905a9311041e28e61f789
3
+ size 255
packets/packet_06.bin ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:53fc619f934f35b2a2e7d66eb7092b48c4ba3e32c0ef394116f606d1c05e5dd1
3
+ size 255
packets/packet_07.bin ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:e9bc511bb3a98185ef654310d99199526ec421e3666e32ef8757bc948059857b
3
+ size 255
packets/packet_08.bin ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:d8b55d01afe2ac5ebbbc6af6ba736888647a50eda592dcaf123a5698b9735b12
3
+ size 255
packets/packet_09.bin ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:5fa5843e769c2297a3f09dd914680f6424b6e6ff8c8896ac05709bf30c3c29b4
3
+ size 255
packets/packet_10.bin ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:90b9df312be6be62cb798481da1639a3d0c2d98f68e5d983a2e69933ed647856
3
+ size 255
packets/packet_11.bin ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:d893da3ad44d19a1e73f9ca60c7a4ab2a8e34487124016db943f692a95fdbff0
3
+ size 255
packets/packet_12.bin ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:ed27f4f9991619f48df26c2c0ee0185dd1d29770634fec53cbeb6dae4f19f8b0
3
+ size 255
packets/packet_13.bin ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:c711fe350c5f85fdabe82f4db38159e6112b03089f8f84c99d810130be8b8cbf
3
+ size 255
packets/packet_14.bin ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:9c4f7998fc277751aba24481ec442a028a094c83222f725a2f86b736ec76cdfd
3
+ size 255
packets/packet_15.bin ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:1d0539d8eb86137704c522fbb212004646f802820c34aa2dc3942f7a84b87b25
3
+ size 255
packets/packet_16.bin ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:4975b9e3380cd1f61b00d3fdd37cb2772065e55d76f3e745a96e0be2cf17546a
3
+ size 255
packets/packet_17.bin ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:ba2d6865e150dc469051351e3f0807d0676f85eadfb978674111f443c04021e2
3
+ size 255
packets/packet_18.bin ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:dd7fd24c3fd2dbf397def70ae71752e3c8f6b6f8e115ebebd7076bf807dd6d82
3
+ size 255
packets/packet_19.bin ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:5db3b8cea4883918b02a659a0aba14ee46d67e935d992433dfcf5c8358dc2519
3
+ size 255
packets/packet_20.bin ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:d0b61b1ea681c3af0d8953f0a12ca04a0ad818242717157fab171c672b7b27ff
3
+ size 255
packets/packet_21.bin ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:a57255aa10f48749160ec424d70d9f4a9d696a51d542a64c1712773f288b74bc
3
+ size 255
packets/packet_22.bin ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:8af1488bf223c9e90f683c5b892bea11938822aa9d71f4e2409c11aa9cdde9ef
3
+ size 255
packets/packet_23.bin ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:0c214831f9cba0d92b0f0d567939c67c6253e74aaf22561c03b6688bc75c5779
3
+ size 255
packets/packet_24.bin ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:dae02a139580943f140a5309b43666e7de87d1d05ba29144377c15ba3fad23bc
3
+ size 255
packets/packet_25.bin ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:5aee1cffa54f434ddc84a8604e38123aba706d8def6b21f75c1009b8e1cfce6d
3
+ size 255
packets/packet_26.bin ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:25dc6cf840a5d2833a1800d1a80d57fde8d74d7e30c93cccbce4f4afc9525c73
3
+ size 255
packets/packet_27.bin ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:dd59d13ba8c09741d3ab2bd5726a62a9e86c24356ab7cf3bbaf101619c47cbaa
3
+ size 255
packets/packet_28.bin ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:aeb6b93c827197812f470f6cb6dc8dd4743c8b1a1e4388bec135f3fae99a798d
3
+ size 255
packets/packet_29.bin ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:a94983e8ea278c8ea103ec77d75d9bbbb8a8c78ede87988be0846aa69e455ee8
3
+ size 255
packets/packet_30.bin ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:80aaf26754e37927f1ec027e4750285668eba98b7a774443fda2f302b134c908
3
+ size 255
packets/packet_31.bin ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:b052a459f43f34276817e9e4836ed3d33f2aaf76a79dc1ab673e632890456bac
3
+ size 255
packets/packet_32.bin ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:27f0b00a1d665fdb4f0b6ed511284b79fab9c759e790e355ad11942fff1dc812
3
+ size 255
packets/packet_33.bin ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:d7e0ae2b5a15cd7e27b5eb0057a83ee6972f23b2ede2ed84007ade21ac519fbd
3
+ size 255
packets/packet_34.bin ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:bb7c6809f2cc6567c1953cf9372d4f48414d681c16a78a732daadd18c46661ae
3
+ size 255
packets/packet_35.bin ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:a37a1c3e95dae869f93fc5eecdce4bcbbe3fe71341586d7cc339effe88a13f1c
3
+ size 255
packets/packet_36.bin ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:183100806dea1cb4a7f753b936dcfbaefda1c09f823cc2dde79406b9bb8ca834
3
+ size 255
packets/packet_37.bin ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:8ba7b4eff08fb9da13c630994591cf85810dde28c4d71fa5aff56a468f1d2f48
3
+ size 255
packets/packet_38.bin ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:a4afe8e57592936cfb15380d3b891cb4b939419884a14123fc263b2c9d85025e
3
+ size 255
packets/packet_39.bin ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:423bd4f613700701bfae2199bfab5d80d7a5356ac93224d9baefa7f3cbfd4abf
3
+ size 255
packets/packet_40.bin ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:66cb31901fe1b294e77506a25e5c2e3ccd5ccbd077ca43735c9ec02d5c2d3d15
3
+ size 255
packets/packet_41.bin ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:27acd49ed0d7d5210b0791bc279fe2936c66b8a35d61764e54847e669aa296eb
3
+ size 255
packets/packet_42.bin ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:4fda7d876b3e065af1209fbdff931911c861046eac3a121f8241d5ae37beae36
3
+ size 255
packets/packet_43.bin ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:4197ac636eeaf9eeed8f3321ca9eaa9a0b110d6271aa03cc8a95284d26b86871
3
+ size 255
packets/packet_44.bin ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:2c64157f30ff4cf1d15110dc92c011baa4687b2148c81b0141247b9880da1423
3
+ size 255
packets/packet_45.bin ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:68eccfe75c683345986ef88626fe76b1a0c4b4f31966e1031261d48a62d651dd
3
+ size 255
packets/packet_46.bin ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:679d96982d298d96bddc10ce26b0faee6fd4e8b8b6e11f9b027b8b3475eff394
3
+ size 255