In [1]:
import os
from glob import glob

from joblib import Parallel, delayed
from tqdm import tqdm_notebook as tqdm
import pickle
import pandas as pd

import pumpp
import jams
import numpy as np

In [2]:
def root(x):
    return os.path.splitext(os.path.basename(x))[0]

AUDIO = jams.util.find_with_extension('/home/bmcfee/data/eric_chords/audio/', 'mp3')
ANNOS = jams.util.find_with_extension('/home/bmcfee/data/eric_chords/references_v2/', 'jams')

# Make sure there are the same number of files
assert len(AUDIO) == len(ANNOS)

# And that they're in agreement
assert all([root(_1) == root(_2) for (_1, _2) in zip(AUDIO, ANNOS)])

In [3]:
# Build a pump
sr = 44100
hop_length = 4096

p_feature = pumpp.feature.CQTMag(name='cqt', sr=sr, hop_length=hop_length, log=True, conv='tf', n_octaves=6)
p_chord_tag = pumpp.task.ChordTagTransformer(name='chord_tag', sr=sr, hop_length=hop_length, sparse=True)
p_chord_struct = pumpp.task.ChordTransformer(name='chord_struct', sr=sr, hop_length=hop_length, sparse=True)

pump = pumpp.Pump(p_feature, p_chord_tag, p_chord_struct)

# Save the pump

with open('/home/bmcfee/working/chords/pump.pkl', 'wb') as fd:
    pickle.dump(pump, fd)

In [4]:
def convert(aud, jam, pump, outdir):
    
    data = pump.transform(aud, jam)
    
    fname = os.path.extsep.join([root(aud), 'npz'])
    
    np.savez(os.path.join(outdir, fname), **data)

In [5]:
OUTDIR = '/home/bmcfee/working/chords/pump/'

In [6]:
Parallel(n_jobs=20, verbose=10)(delayed(convert)(aud, jam, pump, OUTDIR) for (aud, jam) in zip(AUDIO, ANNOS));


[Parallel(n_jobs=20)]: Done   1 tasks      | elapsed:    3.0s
[Parallel(n_jobs=20)]: Done  10 tasks      | elapsed:    4.1s
[Parallel(n_jobs=20)]: Done  21 tasks      | elapsed:    6.6s
[Parallel(n_jobs=20)]: Done  32 tasks      | elapsed:    9.1s
[Parallel(n_jobs=20)]: Done  45 tasks      | elapsed:   12.6s
[Parallel(n_jobs=20)]: Done  58 tasks      | elapsed:   14.9s
[Parallel(n_jobs=20)]: Done  73 tasks      | elapsed:   18.0s
[Parallel(n_jobs=20)]: Done  88 tasks      | elapsed:   21.4s
[Parallel(n_jobs=20)]: Done 105 tasks      | elapsed:   24.9s
[Parallel(n_jobs=20)]: Done 122 tasks      | elapsed:   29.4s
[Parallel(n_jobs=20)]: Done 141 tasks      | elapsed:   33.6s
[Parallel(n_jobs=20)]: Done 160 tasks      | elapsed:   37.6s
[Parallel(n_jobs=20)]: Done 181 tasks      | elapsed:   42.4s
[Parallel(n_jobs=20)]: Done 202 tasks      | elapsed:   46.9s
[Parallel(n_jobs=20)]: Done 225 tasks      | elapsed:   52.5s
[Parallel(n_jobs=20)]: Done 248 tasks      | elapsed:   57.7s
[Parallel(n_jobs=20)]: Done 273 tasks      | elapsed:  1.1min
[Parallel(n_jobs=20)]: Done 298 tasks      | elapsed:  1.2min
[Parallel(n_jobs=20)]: Done 325 tasks      | elapsed:  1.3min
[Parallel(n_jobs=20)]: Done 352 tasks      | elapsed:  1.4min
[Parallel(n_jobs=20)]: Done 381 tasks      | elapsed:  1.5min
[Parallel(n_jobs=20)]: Done 410 tasks      | elapsed:  1.5min
[Parallel(n_jobs=20)]: Done 441 tasks      | elapsed:  1.7min
[Parallel(n_jobs=20)]: Done 472 tasks      | elapsed:  1.8min
[Parallel(n_jobs=20)]: Done 505 tasks      | elapsed:  1.9min
[Parallel(n_jobs=20)]: Done 538 tasks      | elapsed:  2.0min
[Parallel(n_jobs=20)]: Done 573 tasks      | elapsed:  2.1min
[Parallel(n_jobs=20)]: Done 608 tasks      | elapsed:  2.3min
[Parallel(n_jobs=20)]: Done 645 tasks      | elapsed:  2.4min
[Parallel(n_jobs=20)]: Done 682 tasks      | elapsed:  2.6min
[Parallel(n_jobs=20)]: Done 721 tasks      | elapsed:  2.7min
[Parallel(n_jobs=20)]: Done 760 tasks      | elapsed:  2.9min
[Parallel(n_jobs=20)]: Done 801 tasks      | elapsed:  3.0min
[Parallel(n_jobs=20)]: Done 842 tasks      | elapsed:  3.2min
[Parallel(n_jobs=20)]: Done 885 tasks      | elapsed:  3.3min
[Parallel(n_jobs=20)]: Done 928 tasks      | elapsed:  3.5min
[Parallel(n_jobs=20)]: Done 973 tasks      | elapsed:  3.6min
[Parallel(n_jobs=20)]: Done 1018 tasks      | elapsed:  3.8min
[Parallel(n_jobs=20)]: Done 1065 tasks      | elapsed:  4.0min
[Parallel(n_jobs=20)]: Done 1112 tasks      | elapsed:  4.2min
[Parallel(n_jobs=20)]: Done 1161 tasks      | elapsed:  4.4min
[Parallel(n_jobs=20)]: Done 1217 out of 1217 | elapsed:  4.6min finished

In [7]:
# Augmented data
from glob import glob

AUDIO_A = sorted(glob('/home/bmcfee/working/chords/augmentation/*.flac'))
ANNOS_A = sorted(glob('/home/bmcfee/working/chords/augmentation/*.jams'))

# Make sure there are the same number of files
assert len(AUDIO_A) == len(ANNOS_A)

# And that they're in agreement
assert all([root(_1) == root(_2) for (_1, _2) in zip(AUDIO_A, ANNOS_A)])

Parallel(n_jobs=20, verbose=10)(delayed(convert)(aud, jam, pump, OUTDIR) for (aud, jam) in zip(AUDIO_A, ANNOS_A));


[Parallel(n_jobs=20)]: Done   1 tasks      | elapsed:    9.7s
[Parallel(n_jobs=20)]: Done  10 tasks      | elapsed:   14.3s
[Parallel(n_jobs=20)]: Done  21 tasks      | elapsed:   19.6s
[Parallel(n_jobs=20)]: Done  32 tasks      | elapsed:   28.9s
[Parallel(n_jobs=20)]: Done  45 tasks      | elapsed:   38.1s
[Parallel(n_jobs=20)]: Done  58 tasks      | elapsed:   40.4s
[Parallel(n_jobs=20)]: Done  73 tasks      | elapsed:  1.0min
[Parallel(n_jobs=20)]: Done  88 tasks      | elapsed:  1.2min
[Parallel(n_jobs=20)]: Done 105 tasks      | elapsed:  1.3min
[Parallel(n_jobs=20)]: Done 122 tasks      | elapsed:  1.5min
[Parallel(n_jobs=20)]: Done 141 tasks      | elapsed:  1.6min
[Parallel(n_jobs=20)]: Done 160 tasks      | elapsed:  1.8min
[Parallel(n_jobs=20)]: Done 181 tasks      | elapsed:  2.0min
[Parallel(n_jobs=20)]: Done 202 tasks      | elapsed:  2.2min
[Parallel(n_jobs=20)]: Done 225 tasks      | elapsed:  2.4min
[Parallel(n_jobs=20)]: Done 248 tasks      | elapsed:  2.6min
[Parallel(n_jobs=20)]: Done 273 tasks      | elapsed:  2.8min
[Parallel(n_jobs=20)]: Done 298 tasks      | elapsed:  3.0min
[Parallel(n_jobs=20)]: Done 325 tasks      | elapsed:  3.4min
[Parallel(n_jobs=20)]: Done 352 tasks      | elapsed:  3.7min
[Parallel(n_jobs=20)]: Done 381 tasks      | elapsed:  4.0min
[Parallel(n_jobs=20)]: Done 410 tasks      | elapsed:  4.3min
[Parallel(n_jobs=20)]: Done 441 tasks      | elapsed:  4.5min
[Parallel(n_jobs=20)]: Done 472 tasks      | elapsed:  4.8min
[Parallel(n_jobs=20)]: Done 505 tasks      | elapsed:  5.2min
[Parallel(n_jobs=20)]: Done 538 tasks      | elapsed:  5.5min
[Parallel(n_jobs=20)]: Done 573 tasks      | elapsed:  6.0min
[Parallel(n_jobs=20)]: Done 608 tasks      | elapsed:  6.3min
[Parallel(n_jobs=20)]: Done 645 tasks      | elapsed:  6.7min
[Parallel(n_jobs=20)]: Done 682 tasks      | elapsed:  7.0min
[Parallel(n_jobs=20)]: Done 721 tasks      | elapsed:  7.5min
[Parallel(n_jobs=20)]: Done 760 tasks      | elapsed:  7.8min
[Parallel(n_jobs=20)]: Done 801 tasks      | elapsed:  8.3min
[Parallel(n_jobs=20)]: Done 842 tasks      | elapsed:  8.7min
[Parallel(n_jobs=20)]: Done 885 tasks      | elapsed:  9.1min
[Parallel(n_jobs=20)]: Done 928 tasks      | elapsed:  9.6min
[Parallel(n_jobs=20)]: Done 973 tasks      | elapsed: 10.0min
[Parallel(n_jobs=20)]: Done 1018 tasks      | elapsed: 10.3min
[Parallel(n_jobs=20)]: Done 1065 tasks      | elapsed: 10.7min
[Parallel(n_jobs=20)]: Done 1112 tasks      | elapsed: 11.3min
[Parallel(n_jobs=20)]: Done 1161 tasks      | elapsed: 11.8min
[Parallel(n_jobs=20)]: Done 1210 tasks      | elapsed: 12.3min
[Parallel(n_jobs=20)]: Done 1261 tasks      | elapsed: 12.7min
[Parallel(n_jobs=20)]: Done 1312 tasks      | elapsed: 13.2min
[Parallel(n_jobs=20)]: Done 1365 tasks      | elapsed: 13.9min
[Parallel(n_jobs=20)]: Done 1418 tasks      | elapsed: 14.6min
[Parallel(n_jobs=20)]: Done 1473 tasks      | elapsed: 15.1min
[Parallel(n_jobs=20)]: Done 1528 tasks      | elapsed: 15.7min
[Parallel(n_jobs=20)]: Done 1585 tasks      | elapsed: 16.3min
[Parallel(n_jobs=20)]: Done 1642 tasks      | elapsed: 16.8min
[Parallel(n_jobs=20)]: Done 1701 tasks      | elapsed: 17.3min
[Parallel(n_jobs=20)]: Done 1760 tasks      | elapsed: 17.9min
[Parallel(n_jobs=20)]: Done 1821 tasks      | elapsed: 18.5min
[Parallel(n_jobs=20)]: Done 1882 tasks      | elapsed: 19.3min
[Parallel(n_jobs=20)]: Done 1945 tasks      | elapsed: 19.9min
[Parallel(n_jobs=20)]: Done 2008 tasks      | elapsed: 20.4min
[Parallel(n_jobs=20)]: Done 2073 tasks      | elapsed: 20.9min
[Parallel(n_jobs=20)]: Done 2138 tasks      | elapsed: 21.7min
[Parallel(n_jobs=20)]: Done 2205 tasks      | elapsed: 22.5min
[Parallel(n_jobs=20)]: Done 2272 tasks      | elapsed: 22.9min
[Parallel(n_jobs=20)]: Done 2341 tasks      | elapsed: 23.6min
[Parallel(n_jobs=20)]: Done 2410 tasks      | elapsed: 24.3min
[Parallel(n_jobs=20)]: Done 2481 tasks      | elapsed: 25.0min
[Parallel(n_jobs=20)]: Done 2552 tasks      | elapsed: 25.8min
[Parallel(n_jobs=20)]: Done 2625 tasks      | elapsed: 26.6min
[Parallel(n_jobs=20)]: Done 2698 tasks      | elapsed: 27.4min
[Parallel(n_jobs=20)]: Done 2773 tasks      | elapsed: 28.2min
[Parallel(n_jobs=20)]: Done 2848 tasks      | elapsed: 29.0min
[Parallel(n_jobs=20)]: Done 2925 tasks      | elapsed: 29.8min
[Parallel(n_jobs=20)]: Done 3002 tasks      | elapsed: 30.9min
[Parallel(n_jobs=20)]: Done 3081 tasks      | elapsed: 31.6min
[Parallel(n_jobs=20)]: Done 3160 tasks      | elapsed: 32.4min
[Parallel(n_jobs=20)]: Done 3241 tasks      | elapsed: 33.2min
[Parallel(n_jobs=20)]: Done 3322 tasks      | elapsed: 34.1min
[Parallel(n_jobs=20)]: Done 3405 tasks      | elapsed: 34.7min
[Parallel(n_jobs=20)]: Done 3488 tasks      | elapsed: 35.6min
[Parallel(n_jobs=20)]: Done 3573 tasks      | elapsed: 36.5min
[Parallel(n_jobs=20)]: Done 3658 tasks      | elapsed: 37.3min
[Parallel(n_jobs=20)]: Done 3745 tasks      | elapsed: 38.3min
[Parallel(n_jobs=20)]: Done 3832 tasks      | elapsed: 39.2min
[Parallel(n_jobs=20)]: Done 3921 tasks      | elapsed: 40.2min
[Parallel(n_jobs=20)]: Done 4010 tasks      | elapsed: 41.0min
[Parallel(n_jobs=20)]: Done 4101 tasks      | elapsed: 41.9min
[Parallel(n_jobs=20)]: Done 4192 tasks      | elapsed: 42.8min
[Parallel(n_jobs=20)]: Done 4285 tasks      | elapsed: 43.7min
[Parallel(n_jobs=20)]: Done 4378 tasks      | elapsed: 44.5min
[Parallel(n_jobs=20)]: Done 4473 tasks      | elapsed: 45.5min
[Parallel(n_jobs=20)]: Done 4568 tasks      | elapsed: 46.2min
[Parallel(n_jobs=20)]: Done 4665 tasks      | elapsed: 47.1min
[Parallel(n_jobs=20)]: Done 4762 tasks      | elapsed: 48.0min
[Parallel(n_jobs=20)]: Done 4861 tasks      | elapsed: 48.9min
[Parallel(n_jobs=20)]: Done 4960 tasks      | elapsed: 49.9min
[Parallel(n_jobs=20)]: Done 5061 tasks      | elapsed: 51.0min
[Parallel(n_jobs=20)]: Done 5162 tasks      | elapsed: 51.9min
[Parallel(n_jobs=20)]: Done 5265 tasks      | elapsed: 52.7min
[Parallel(n_jobs=20)]: Done 5368 tasks      | elapsed: 53.7min
[Parallel(n_jobs=20)]: Done 5473 tasks      | elapsed: 54.7min
[Parallel(n_jobs=20)]: Done 5578 tasks      | elapsed: 55.7min
[Parallel(n_jobs=20)]: Done 5685 tasks      | elapsed: 56.8min
[Parallel(n_jobs=20)]: Done 5792 tasks      | elapsed: 57.8min
[Parallel(n_jobs=20)]: Done 5901 tasks      | elapsed: 58.9min
[Parallel(n_jobs=20)]: Done 6010 tasks      | elapsed: 59.9min
[Parallel(n_jobs=20)]: Done 6121 tasks      | elapsed: 60.9min
[Parallel(n_jobs=20)]: Done 6232 tasks      | elapsed: 62.0min
[Parallel(n_jobs=20)]: Done 6345 tasks      | elapsed: 63.1min
[Parallel(n_jobs=20)]: Done 6458 tasks      | elapsed: 64.3min
[Parallel(n_jobs=20)]: Done 6573 tasks      | elapsed: 65.4min
[Parallel(n_jobs=20)]: Done 6688 tasks      | elapsed: 66.5min
[Parallel(n_jobs=20)]: Done 6805 tasks      | elapsed: 67.6min
[Parallel(n_jobs=20)]: Done 6922 tasks      | elapsed: 69.0min
[Parallel(n_jobs=20)]: Done 7041 tasks      | elapsed: 70.4min
[Parallel(n_jobs=20)]: Done 7160 tasks      | elapsed: 71.7min
[Parallel(n_jobs=20)]: Done 7281 tasks      | elapsed: 73.0min
[Parallel(n_jobs=20)]: Done 7402 tasks      | elapsed: 74.4min
[Parallel(n_jobs=20)]: Done 7525 tasks      | elapsed: 75.7min
[Parallel(n_jobs=20)]: Done 7648 tasks      | elapsed: 76.9min
[Parallel(n_jobs=20)]: Done 7773 tasks      | elapsed: 78.1min
[Parallel(n_jobs=20)]: Done 7898 tasks      | elapsed: 79.4min
[Parallel(n_jobs=20)]: Done 8025 tasks      | elapsed: 80.7min
[Parallel(n_jobs=20)]: Done 8152 tasks      | elapsed: 82.1min
[Parallel(n_jobs=20)]: Done 8281 tasks      | elapsed: 83.4min
[Parallel(n_jobs=20)]: Done 8410 tasks      | elapsed: 84.9min
[Parallel(n_jobs=20)]: Done 8541 tasks      | elapsed: 86.0min
[Parallel(n_jobs=20)]: Done 8672 tasks      | elapsed: 87.1min
[Parallel(n_jobs=20)]: Done 8805 tasks      | elapsed: 88.3min
[Parallel(n_jobs=20)]: Done 8938 tasks      | elapsed: 89.7min
[Parallel(n_jobs=20)]: Done 9073 tasks      | elapsed: 91.0min
[Parallel(n_jobs=20)]: Done 9208 tasks      | elapsed: 92.2min
[Parallel(n_jobs=20)]: Done 9345 tasks      | elapsed: 93.8min
[Parallel(n_jobs=20)]: Done 9482 tasks      | elapsed: 95.0min
[Parallel(n_jobs=20)]: Done 9621 tasks      | elapsed: 96.2min
[Parallel(n_jobs=20)]: Done 9760 tasks      | elapsed: 97.7min
[Parallel(n_jobs=20)]: Done 9901 tasks      | elapsed: 99.2min
[Parallel(n_jobs=20)]: Done 10042 tasks      | elapsed: 100.6min
[Parallel(n_jobs=20)]: Done 10185 tasks      | elapsed: 101.9min
[Parallel(n_jobs=20)]: Done 10328 tasks      | elapsed: 103.4min
[Parallel(n_jobs=20)]: Done 10473 tasks      | elapsed: 104.8min
[Parallel(n_jobs=20)]: Done 10618 tasks      | elapsed: 106.1min
[Parallel(n_jobs=20)]: Done 10765 tasks      | elapsed: 107.3min
[Parallel(n_jobs=20)]: Done 10912 tasks      | elapsed: 108.4min
[Parallel(n_jobs=20)]: Done 11061 tasks      | elapsed: 109.8min
[Parallel(n_jobs=20)]: Done 11210 tasks      | elapsed: 111.5min
[Parallel(n_jobs=20)]: Done 11361 tasks      | elapsed: 112.9min
[Parallel(n_jobs=20)]: Done 11512 tasks      | elapsed: 114.6min
[Parallel(n_jobs=20)]: Done 11665 tasks      | elapsed: 116.2min
[Parallel(n_jobs=20)]: Done 11818 tasks      | elapsed: 117.7min
[Parallel(n_jobs=20)]: Done 11973 tasks      | elapsed: 119.3min
[Parallel(n_jobs=20)]: Done 12128 tasks      | elapsed: 120.8min
[Parallel(n_jobs=20)]: Done 12285 tasks      | elapsed: 122.2min
[Parallel(n_jobs=20)]: Done 12442 tasks      | elapsed: 124.2min
[Parallel(n_jobs=20)]: Done 12601 tasks      | elapsed: 125.8min
[Parallel(n_jobs=20)]: Done 12760 tasks      | elapsed: 127.6min
[Parallel(n_jobs=20)]: Done 12921 tasks      | elapsed: 128.9min
[Parallel(n_jobs=20)]: Done 13082 tasks      | elapsed: 130.5min
[Parallel(n_jobs=20)]: Done 13245 tasks      | elapsed: 132.2min
[Parallel(n_jobs=20)]: Done 13408 tasks      | elapsed: 133.9min
[Parallel(n_jobs=20)]: Done 13573 tasks      | elapsed: 135.5min
[Parallel(n_jobs=20)]: Done 13738 tasks      | elapsed: 137.1min
[Parallel(n_jobs=20)]: Done 13905 tasks      | elapsed: 139.2min
[Parallel(n_jobs=20)]: Done 14072 tasks      | elapsed: 140.8min
[Parallel(n_jobs=20)]: Done 14241 tasks      | elapsed: 142.6min
[Parallel(n_jobs=20)]: Done 14410 tasks      | elapsed: 144.0min
[Parallel(n_jobs=20)]: Done 14604 out of 14604 | elapsed: 146.0min finished

In [ ]:
# Synthetic data
# Augmented data
from glob import glob

AUDIO_S = sorted(glob('/home/bmcfee/working/chords/synthetic//*.flac'))
ANNOS_S = sorted(glob('/home/bmcfee/working/chords/synthetic//*.jamz'))

# Make sure there are the same number of files
assert len(AUDIO_S) == len(ANNOS_S)

# And that they're in agreement
assert all([root(_1) == root(_2) for (_1, _2) in zip(AUDIO_S, ANNOS_S)])

In [ ]:
Parallel(n_jobs=20, verbose=10)(delayed(convert)(aud, jam, pump, OUTDIR) for (aud, jam) in zip(AUDIO_S, ANNOS_S));

In [ ]:
# Make the artist index

In [41]:
index = pd.Series()

null_artist = 0

for ann in tqdm(ANNOS):
    J = jams.load(ann, validate=False)
    if not J.file_metadata.artist:
        artist = 'artist_{:05d}'.format(null_artist)
        null_artist += 1
    else:
        artist = J.file_metadata.artist
        
    index[root(ann)] = artist

index.to_json('/home/bmcfee/working/chords/artist_index.json')




In [ ]:
for ann in tqdm(ANNOS):
    J = jams.load(ann, validate=False)
    print('{}: {}'.format(root(ann), len(J.annotations['chord'])))


TR6R91L11C8A40D710: 1
TRACGVT149E3B9BE3F: 1
TRACPPB149E33C10B9: 1
TRADINA127F847B84E: 1
TRAEQJQ149E3BA694B: 1
TRAGPGW149E3A9DFC7: 1
TRAGTML149E3B2F15F: 1
TRAHKKV149E3BDA124: 1
TRAHMSN127F92CD4AD: 1
TRAHXQW149E3BCE2C1: 1
TRAIIEF149E3861F6C: 1
TRAITGI149E3C71235: 1
TRAJQHL149E3EF231A: 2
TRAKIXJ149E332D53F: 1
TRALJVL127F98F7094: 1
TRAMEPQ149E2C6E391: 1
TRAOIOP149E3AD2F51: 1
TRAOVGN149E362699A: 1
TRAPEUF149E3BF4C4C: 1
TRAPSWJ149E36CDE23: 1
TRAPYYI149E33239E1: 1
TRAQZSN149E30ECF47: 1
TRARMNB149E3DECF43: 1
TRATELE149E33C7DFD: 1
TRATLJQ149E33D7D2A: 1
TRATRSK149E2CC934D: 1
TRAUSXP149E3BBA300: 1
TRAVBNX149E3F1BDEB: 1
TRAVDXB127FA694101: 1
TRAVJKH149E37C05B8: 1
TRAWUJT149E3DFAE74: 1
TRAWVNL127FA2C9CD6: 1
TRAXCRW149E2CC259A: 1
TRAXWBI149E3D6BC67: 1
TRAYBJG149E34B0C9E: 1
TRAYVUZ149E3840C6F: 1
TRAYYLG149E379CC85: 1
TRAZIEZ149E316AD26: 1
TRAZQMJ149E35018A5: 1
TRBACIS149E3490E0D: 1
TRBAERZ149E316341A: 1
TRBAFVO149E33A9195: 1
TRBASYY149E3B90EC1: 1
TRBBJEM149E3D337D2: 1
TRBBMDO127FA027922: 1
TRBBPZJ149E3B386A2: 1
TRBCMRY149E36BB481: 1
TRBEMQC149E3E06D32: 1
TRBEOFY149E33E3CD0: 1
TRBFASH149E341F334: 1
TRBFCXI149E3B93FC3: 1
TRBFMXE149E3E18222: 1
TRBFQWK149E3676BFE: 1
TRBGUXA149E38E0215: 1
TRBGZPI149E312C871: 1
TRBHKNU149E33A577B: 1
TRBHOSF149E2E078F1: 1
TRBICQG149E3EB192D: 1
TRBIHIN149E3B2277A: 1
TRBJDXP149E36B030A: 1
TRBJSDA149E3148051: 1
TRBKNSX149E2E1F89F: 1
TRBMKWW149E34E6470: 1
TRBMQST149E36FE5B5: 1
TRBPAAD149E32F497E: 1
TRBPGDO149E2EA6EC5: 1
TRBPNSS149E33E0214: 1
TRBPRKY149E3DD8368: 1
TRBPUSM149E3B6F3E2: 1
TRBQREF149E3D2C6F4: 1
TRBQRLW127FAA18F96: 1
TRBQRUB149E39C4BC6: 1
TRBSXXV149E3F15977: 1
TRBTTXD149E3CB5743: 1
TRBUYGN127F8D2ED81: 1
TRBVFKE127FA1F055E: 1
TRBVKYF149E3D6E9C0: 1
TRBVQDL149E2E3410C: 1
TRBVYMI149E3A20617: 1
TRBWSLO149E36857F0: 1
TRBXEFS149E3424060: 1
TRBXKOF149E3A7ACF1: 1
TRBYNSM149E3E5B350: 1
TRBZANS149E32AE52A: 1
TRBZEQE149E2E57033: 1
TRBZFAA149E3EEDCEB: 1
TRBZRSR149E361EFCF: 1
TRCAHTV149E3A052FA: 1
TRCCHVK149E3F0FDC0: 1
TRCCICY149E387B12B: 1
TRCCRPJ149E3746F38: 1
TRCCVUN149E37DE699: 1
TRCDKUX149E3A6E05D: 1
TRCEYZQ149E395A373: 1
TRCGAAQ149E30D73B6: 1
TRCGBHA149E2F49566: 1
TRCHFGI127FAA1748A: 1
TRCHNSC149E3B625EF: 1
TRCIBQC149E37C4155: 1
TRCIEFV149E3C9D3DE: 1
TRCILOU127F92CD49F: 1
TRCJQNI149E3853B13: 1
TRCKDDY149E37AF7A7: 1
TRCLDYH149E3F1394D: 1
TRCLSZC149E3883042: 1
TRCMANT149E2CA17A4: 2
TRCMNRR149E3BDE1E7: 1
TRCPMTN149E3BD5787: 1
TRCPZLY149E380216C: 1
TRCRNBV149E2E04318: 1
TRCRRFF149E3C622CD: 1
TRCSWZS149E3DE5F60: 1
TRCTCRH149E32EDF5C: 1
TRCTSND149E35B76FC: 1
TRCTZLW127F95B6DB0: 1
TRCUIYQ127F8A92700: 1
TRCUOQM149E366DB69: 1
TRCVHBO149E3A23FE3: 1
TRCVJQK127FAD0736D: 1
TRCVVKA149E32532A4: 1
TRCWFQK149E32833C3: 1
TRCWTCA149E38A650A: 1
TRCWTQP149E3DA1960: 1
TRCXPMV149E3673935: 1
TRCXRKX127F8BD79E4: 1
TRCXUOR149E39959E4: 1
TRCYFSX149E38E8293: 1
TRCZCXZ149E3E2FC6E: 1
TRCZSAO149E37C88D8: 1
TRDAHUY149E2D9B633: 1
TRDAJDG149E3784BF8: 1
TRDAVFB149E389EC25: 1
TRDAXCP149E3461F20: 1
TRDBIXK149E370B9CA: 1
TRDBXBU149E38C0AA8: 1
TRDDAZK149E3704DE7: 1
TRDDUNL149E32A03E0: 1
TRDDWYV149E3F228DB: 1
TRDEESH149E2E84162: 1
TRDFOHB127FA68F711: 1
TRDFWRP149E2EB2727: 1
TRDGHFW149E3A8E4DD: 1
TRDHHMW149E3BAD09C: 1
TRDHJBO149E3C2C79C: 1
TRDIRNT149E3AABF0E: 1
TRDITCY149E397E0C3: 1
TRDIVBV149E3B72861: 1
TRDJNUK149E2C83479: 1
TRDJQBX149E3CBC58B: 1
TRDJVCN127F5FB5238: 1
TRDJWFI149E3E7A815: 1
TRDJWKN149E3509E37: 1
TRDKQQP149E317F6C7: 1
TRDKRTK149E3447CC1: 1
TRDKTCX149E3D47335: 1
TRDLAJY149E2BBA3F4: 1
TRDMNDR127FA622238: 1
TRDMNOF149E3933763: 1
TRDPDRM149E3D0E63A: 1
TRDPFBD149E3A7D7D4: 1
TRDPGMB149E34BCC36: 1
TRDQBXM149E327CDF6: 1
TRDQQPZ149E398D631: 1
TRDQSNN149E334A1E9: 1
TRDRSEE149E376D405: 1
TRDRTVN149E3987A97: 1
TRDRXZB149E3811FB2: 1
TRDSBAH149E37B923E: 1
TRDTGIF149E356F759: 1
TRDTJAK149E396976B: 1
TRDTLSY149E3B1D11A: 1
TRDUBBA127F8F314FF: 1
TRDUXLJ149E3AED5B4: 1
TRDVEWY149E3DE16C2: 1
TRDVYHP149E35C4A3D: 1
TRDWGYT149E3256FEE: 1
TRDWNJT149E3A0DE51: 1
TRDWPHA127FA2A2EF4: 1
TRDWUCT149E3D6244D: 1
TRDXFCA149E3E95FC7: 1
TRDXIWV149E329655C: 1
TRDXQAT149E3EFF9AE: 1
TRDYKPG149E35310E9: 1
TRDYTJD149E35FDA15: 1
TRDYWUD149E3128DC0: 1
TRDZILS149E38F5413: 1
TRDZLKL149E3D1AA01: 1
TRDZPYO149E35C1079: 1
TRDZYBW149E3F2C917: 1
TREBFRF149E30BEFF0: 1
TRECHHK149E3C27148: 1
TRECLAG149E3600A62: 1
TREDDXR149E346C696: 1
TREDVCJ149E3753F8E: 1
TREEATT149E314CD25: 1
TREEITG149E32E9DAB: 1
TREFWHV149E36F15E2: 1
TREGAGS149E3971F2B: 1
TREGRRX149E390D226: 1
TREIAVP149E3C94A75: 1
TREIEVN149E33F4F25: 1
TREIIMT149E3789BE9: 1
TREIJCI149E3A15783: 1
TREJPDV149E3263274: 1
TREJVUU120D4C8895C: 1
TREKHYK127FA690DA5: 1
TRELCLT149E39BCA1E: 1
TRELLOA149E39B296C: 1
TRELONO149E3A03134: 1
TRELVER149E34135C0: 1
TRELVFR149E3438308: 1
TREMNLC149E3AD6ECB: 1
TRENGXS149E31561A6: 1
TREODZT127FA201DC8: 1
TREOMNK127FA1E69C3: 1
TREOMZG149E38BE43E: 1
TREORGQ149E34C2E85: 1
TREOWBD149E333539D: 1
TREQHLT149E393965B: 1
TREQOWO149E370718B: 1
TRERGNF149E34BFAA6: 1
TRERGVT149E2DDBFF9: 1
TRERMTC149E3B4BECA: 1
TRERUNS127F8B7710D: 1
TRESROY149E3352FE0: 1
TRESXZJ149E39A2951: 1
TRESYBP127FA6901EA: 1
TRESZWT149E38957AD: 1
TRETCNL149E39DDF39: 1
TRETJOG149E363FB83: 1
TRETREY149E3ABF474: 1
TREUAPL149E33FE0E5: 1
TREUCMV127FA622177: 1
TREUGYA149E3377CF4: 1
TREUXJV149E3166B7A: 1
TREVVAN149E3775495: 1
TREWUDU149E3B33AF2: 1
TREXAOV127FA6900D1: 1
TREXLAP149E3E9E134: 1
TREXPPD149E344AB31: 1
TREXROE127F95BC81F: 1
TREYEPE149E2C85633: 1
TREZMPN149E34A02BE: 1
TRFAVJY149E3C3506E: 1
TRFBENP149E37D6299: 1
TRFBQZR127F8D30291: 1
TRFCSRO149E3406C39: 1
TRFCZUW149E2E5D0CC: 1
TRFDEYG149E372362F: 1
TRFDQCB149E3485818: 1
TRFDTBF149E359A92F: 1
TRFFDQY127F8F6809F: 1
TRFGNEU149E39C0A6E: 1
TRFGWMS149E3B2A63E: 1
TRFHFWA149E3740BE2: 1
TRFHYVF149E3DCCEE1: 1
TRFIBMH149E374E316: 1
TRFKCFM149E3629B11: 1
TRFKMTU149E3B8ED84: 1
TRFKRCY149E33C93CD: 1
TRFKYUQ149E38A2887: 1
TRFLMJP149E3563A1A: 1
TRFLOXT149E32E65F0: 1
TRFLSTA149E35BF9C5: 1
TRFMFNT149E2DF2986: 1
TRFORDR127F9D5AA6E: 1
TRFPGQE149E3C29FA7: 1
TRFPVJF149E3DDABCF: 1
TRFPYSA149E35A466E: 1
TRFQAJM127FA6901CA: 1
TRFQEUW149E3434096: 1
TRFQQPQ149E3C5A752: 1
TRFQYDF149E3C11C8D: 1
TRFRRAF149E2E8F807: 1
TRFRUTV127F9E21224: 1
TRFRYWX149E3C3FC99: 1
TRFSVDX127F88E2C47: 1
TRFSZWH149E330911A: 1
TRFTFEZ149E36D79E6: 1
TRFTIAL149E3E2CC2A: 1
TRFTJMM149E2C3C7CC: 1
TRFTUQN149E36B51CA: 1
TRFTZSK149E3787AFD: 1
TRFUZDL149E30E73C9: 1
TRFVHLX149E33BB902: 1
TRFVOOM127FA301CFB: 1
TRFVPWB149E2B948FE: 1
TRFVULO149E32F1B5B: 1
TRFWUSF149E3716F4F: 1
TRFWXAM149E39F3001: 1
TRFXXUD149E37B3511: 1
TRFYMYX149E3B4EE65: 1
TRFYTBQ149E2BAFFAF: 1
TRFYTTA149E386F073: 1
TRFZFFW149E35E68BB: 1
TRFZJJT149E33CFCFF: 1
TRFZUFM149E2E27257: 1
TRGANRB127F8603C9B: 1
TRGBAXL149E35797BD: 1
TRGBEBH120D4C88F46: 1
TRGCZVA149E3C19A9D: 1
TRGDXYJ149E3DBFB06: 1
TRGEMJK149E3273536: 1
TRGFNMQ149E3C3BB4B: 1
TRGGECG127F8F680BE: 1
TRGHTPH127F9D5296E: 1
TRGHUZN149E33755BA: 1
TRGHVCT149E34FDC7B: 1
TRGHXJW149E3891B44: 1
TRGIERY149E37A456D: 1
TRGIKLN149E3B88D1B: 1
TRGJGFG149E3D8F5DC: 1
TRGKLJG127FA61EAC9: 1
TRGKYBE149E3D0A2B5: 1
TRGLNHM149E3631304: 1
TRGMCTS127F8DD8B66: 1
TRGMCUB127F88DB00A: 1
TRGMVPO149E3112940: 1
TRGNGUP149E32931F8: 1
TRGOMYL149E3C69C01: 1
TRGPSAJ149E34DA525: 1
TRGQBPW149E330FAC7: 1
TRGQDDZ149E30DBBB8: 1
TRGQKIR149E333D094: 1
TRGRMUK149E329D564: 1
TRGRPMX149E3C03821: 1
TRGRZMU149E3537D57: 1
TRGVWET149E3C8B670: 1
TRGYRTH149E3A47DB1: 1
TRHAAMD127F825733E: 1
TRHATMG149E34F712D: 1
TRHBNVY149E3C92614: 1
TRHCOZW149E3534AFF: 1
TRHDLAF149E3E5F79F: 1
TRHDNSP149E39666AE: 1
TRHEWTX149E3B0DFC6: 1
TRHFQYU149E36951C9: 1
TRHGBUI149E3750D37: 1
TRHGSPN149E3C7430F: 1
TRHGTEW149E352675E: 1
TRHIGBX149E352A28A: 1
TRHIILF149E340D4D9: 1
TRHIMSL149E2DE4F85: 2
TRHIUSN149E2E80359: 1
TRHJBCZ149E3A4C967: 1
TRHKBES149E3AD0CAF: 1
TRHKCYY149E3C6521A: 1
TRHKGAF149E3C232F0: 1
TRHLPFC149E31701C9: 1
TRHMUPX127F8A932EE: 1
TRHNACN149E3596A6F: 1
TRHNJLQ149E3A6B3CA: 1
TRHOOHK149E362E7B2: 1
TRHOVDW149E376FB66: 1
TRHPDSU149E32606EB: 1
TRHPMDJ149E38C891C: 1
TRHPPJI149E35F6FE8: 1
TRHPQAS149E30CF857: 1
TRHPTPU149E3CF2AEA: 1
TRHQLZX149E3275F61: 1
TRHSBYA149E35F476E: 1
TRHSELP149E3A2933D: 1
TRHTCNT127F7D91188: 1
TRHTOPB149E3E82A2C: 1
TRHTXSN149E3980990: 1
TRHTYMP127FA37D440: 1
TRHVAQI149E3ADE80E: 1
TRHVDQH149E334FF58: 1
TRHVVOF149E3C96BD8: 1
TRHWNTD127FACFF8AA: 1
TRHXAEG149E358BF2D: 1
TRHXPFS149E3EF0196: 1
TRHXRQR127F8B51809: 1
TRHYFAK149E2C9E220: 1
TRHYUPT149E3D5A6F1: 1
TRIAHHW149E3B0BEF3: 1
TRIBNUC149E371A7EC: 1
TRIBTCS149E36ECCA2: 1
TRICODO149E31508F5: 1
TRIDTWS149E37DBCD8: 1
TRIFGVJ149E35F2A12: 1
TRIFHGO149E30A6AD0: 1
TRIFNCV149E3A1C47B: 1
TRIFUBS127F931792B: 1
TRIHBAE149E2BC4D19: 1
TRIHCIZ149E315BD00: 1
TRIHSFS149E3814B5C: 1
TRIHXWN149E3398F19: 1
TRIIODO149E34B404F: 1
TRIJTAH149E3ED5344: 1
TRIJZVA127F9FBCB2F: 1
TRIKLPN149E32A6A4D: 1
TRIKTBG149E383D8EB: 1
TRIKXOU149E2E17A5B: 1
TRILOSW149E30C29F7: 1
TRIMFLU127F88D9DC2: 1
TRIMXXT149E369AFFA: 1
TRIMYHG149E3A00712: 1
TRIQGJF149E3D7C8DF: 1
TRIRDCR127F98EF151: 1
TRIREHL149E30E3515: 1
TRIRKBL149E3657617: 1
TRIRWMQ127FA390C13: 1
TRIRXOK149E3D749E1: 1
TRIRXWY149E3DD1B4F: 1
TRISCLW149E32DB2A7: 1
TRITICN149E3E27CF7: 2
TRIVRSN149E3EA0C75: 1
TRIXEZU149E30B366A: 1
TRIXJVN149E3D79707: 1
TRIXUAK127FA1EC3E6: 1
TRIYMAA149E38CDC1E: 1
TRIYVSL149E3E1D830: 1
TRIZGNY149E3CB6FE0: 1
TRIZJBB127FA1E8001: 1
TRJATCP149E38F6EC8: 1
TRJBNYP149E3763883: 1
TRJEFSL149E340AE3A: 1
TRJFCXI149E339F3C6: 1
TRJFNZN149E3593A26: 1
TRJFOEJ149E3D1F5FE: 1
TRJGCLJ149E38E44EF: 1
TRJGRAC149E3A0A32B: 1
TRJGRVH120C9841D79: 1
TRJGZXP149E31617D1: 1
TRJHHAB149E366A3FE: 1
TRJJRFM149E315D74F: 1
TRJJUQS149E3EA9ED0: 1
TRJJVZL149E3829FA4: 1
TRJKHWM149E3AC8A0C: 1
TRJKXRV149E3409224: 1
TRJLXYR127F98F0A8E: 1
TRJMAJM149E3BAFE12: 1
TRJMBYA149E3B410F2: 1
TRJMEVJ149E2E77FF2: 1
TRJMVAT149E3794AF4: 1
TRJNGIY149E3AD459C: 1
TRJOADO149E3259BD0: 1
TRJONLD149E3EEB926: 1
TRJPQPW149E363D151: 1
TRJQAOT149E3E32ED1: 1
TRJUASP149E37D8D25: 1
TRJUBRC149E336F126: 1
TRJULXJ149E35AC5DA: 1
TRJXFNV149E3EDE11F: 1
TRJYIND149E373D07C: 1
TRJYKUB149E38EF744: 1
TRJYRLE149E34E8993: 1
TRJYYCU149E3A64F41: 1
TRKALMH149E39EC208: 1
TRKAOWL149E3B47A5C: 1
TRKBBXU149E348D0C1: 1
TRKBIXR149E3299CEA: 1
TRKBURM149E3691669: 1
TRKCBKD149E3C4EEAC: 1
TRKCOQV149E388A0F3: 1
TRKCXCG149E3DF10FF: 1
TRKDCAQ149E396ED23: 1
TRKDDGW149E3C8EB3B: 1
TRKDRGR149E3441958: 1
TRKDWGD149E3947BE7: 1
TRKEENP149E3DB9D38: 1
TRKEFWN149E3A93843: 1
TRKEOPJ149E356916C: 1
TRKFJBM149E332692F: 1
TRKGQXJ149E3B69A44: 1
TRKINMI127FA68F716: 1
TRKIVZQ149E2C78F90: 1
TRKJZYI149E32E05B4: 1
TRKKAPZ149E371FC05: 1
TRKKPEH149E2E45250: 1
TRKLGWQ149E3E580CD: 1
TRKLPCM149E33E7EB9: 1
TRKLPQE149E36D47A5: 1
TRKLVMG149E34C9E41: 1
TRKLWGI149E3565FD1: 1
TRKLZRT149E3942FFF: 1
TRKMVZV149E3823C06: 1
TRKNDJC149E39779D7: 1
TRKNQAL127F99CC717: 1
TRKNVIM149E39B99FF: 1
TRKNYUQ149E33EFA7C: 1
TRKPDBD149E3D82E7A: 1
TRKPDVF149E3B98AF2: 1
TRKPLDT149E328A514: 1
TRKPVZE127FADB1A21: 1
TRKPXZR149E37A7F22: 1
TRKPZBM149E34F53AF: 1
TRKQLGR149E3EE2ED8: 1
TRKRCNM149E3573E40: 1
TRKRKII149E2DEBA69: 1
TRKRPZT127FA28B9CD: 1
TRKRSNQ149E313E6FA: 1
TRKSBPY149E343AF57: 1
TRKSQJL149E351A4E3: 1
TRKSVQD127F954FBD0: 1
TRKTKGU149E39FEC67: 1
TRKUASD149E3F332CD: 1
TRKURTJ149E3E1002E: 1
TRKVJQC149E3A19224: 1
TRKWIWN149E3603415: 1
TRKWXXF149E35BAEB8: 1