diff options
Diffstat (limited to 'advent-of-code/2023')
| -rw-r--r-- | advent-of-code/2023/08/1.rkt | 47 | ||||
| -rw-r--r-- | advent-of-code/2023/08/2.rkt | 60 | ||||
| -rw-r--r-- | advent-of-code/2023/08/input | 800 |
3 files changed, 907 insertions, 0 deletions
diff --git a/advent-of-code/2023/08/1.rkt b/advent-of-code/2023/08/1.rkt new file mode 100644 index 0000000..3db9ccd --- /dev/null +++ b/advent-of-code/2023/08/1.rkt @@ -0,0 +1,47 @@ +#lang racket + +(require "../../lib/utils.rkt") + +(define lines + (call-with-input-file "input" + (lambda (fp) + (get-lines fp)))) + +(define instructions (string->list (car lines))) + +(define (make-instruction-generator) + (define cur instructions) + (lambda () + (when (null? cur) + (set! cur instructions)) + (define ret (car cur)) + (set! cur (cdr cur)) + ret)) + +(define next-instruction (make-instruction-generator)) + +(set! lines (cddr lines)) + +(define (parse-map str) + (define p1 (string-split str "=")) + (define key (string-trim (car p1))) + (define val-str (string-trim (cadr p1))) + (define value (list (substring val-str 1 4) (substring val-str 6 9))) + (cons key value)) + +(define the-map (make-hash (map parse-map lines))) + +(define (simulate start end) + (let loop ((i 0) (cur start)) + (if (string=? cur end) + i + (let () + (define instruction (next-instruction)) + (define mapping (hash-ref the-map cur)) + (define next + (if (char=? instruction #\L) + (car mapping) + (cadr mapping))) + (loop (+ 1 i) next))))) + +(simulate "AAA" "ZZZ")
\ No newline at end of file diff --git a/advent-of-code/2023/08/2.rkt b/advent-of-code/2023/08/2.rkt new file mode 100644 index 0000000..35ca47a --- /dev/null +++ b/advent-of-code/2023/08/2.rkt @@ -0,0 +1,60 @@ +#lang racket + +(require "../../lib/utils.rkt") + +(define lines + (call-with-input-file "input" + (lambda (fp) + (get-lines fp)))) + +(define instructions (string->list (car lines))) + +(define (make-instruction-generator) + (define cur instructions) + (lambda () + (when (null? cur) + (set! cur instructions)) + (define ret (car cur)) + (set! cur (cdr cur)) + ret)) + +(define next-instruction (make-instruction-generator)) + +(set! lines (cddr lines)) + +(define (parse-map str) + (define p1 (string-split str "=")) + (define key (string-trim (car p1))) + (define val-str (string-trim (cadr p1))) + (define value (list (substring val-str 1 4) (substring val-str 6 9))) + (cons key value)) + +(define the-map (make-hash (map parse-map lines))) + +(define (is-start? str) + (char=? #\A (string-ref str 2))) + +(define (is-end? str) + (char=? #\Z (string-ref str 2))) + +(define (simulate start) + (let loop ((i 0) (cur start)) + (if (is-end? cur) + i + (let () + (define instruction (next-instruction)) + (define (next-point point) + (define mapping (hash-ref the-map point)) + (if (char=? instruction #\L) + (car mapping) + (cadr mapping))) + (loop (+ 1 i) (next-point cur)))))) + + +(define starts + (let () + (define lst (hash->list the-map)) + (define keys (map car lst)) + (filter is-start? keys))) + +(apply lcm (map simulate starts))
\ No newline at end of file diff --git a/advent-of-code/2023/08/input b/advent-of-code/2023/08/input new file mode 100644 index 0000000..a56059a --- /dev/null +++ b/advent-of-code/2023/08/input @@ -0,0 +1,800 @@ +LLRLRLLRRLRLRLLRRLRRRLRRRLRRLRRLRLRLRRRLLRLRRLRLRRRLRLLRRLRLRLLRRRLLRLRRRLRLRRLRRLRLLRRLRRLRLRLRLLRLLRRLRRLRRLRRLRRLRLLRLRLRRRLRRRLRRLRLRLRRLRRRLRLRRRLRLRLRLRRRLRRLRRLRRRLLLLRRLRRLRLRRRLRLRRRLRRLLLLRLRLRRRLRRRLRLRRLLRLRLRRRLRLRLRRRLRLLRRRLRRLRLRLRRRLRLLRRLLRRRLRRRLRRRLRRLRLRLRRRLRRRLRRRLLRRRR + +NNN = (TNT, XDJ) +GKJ = (TQD, PDP) +VPC = (TST, FDJ) +MNG = (GQS, RVK) +JQF = (LLK, BQH) +HPS = (XDJ, TNT) +VSD = (GNK, HJS) +VGT = (KXR, FMP) +GQB = (GTX, HLC) +PLJ = (QCS, TVN) +BXM = (GMB, LBC) +XJQ = (NHG, NQD) +NKX = (KBJ, GTS) +PKT = (XFK, SKR) +HJB = (LRX, KQG) +SNM = (PLN, CJT) +LQD = (MTK, KMS) +KTN = (SSC, KPL) +LVJ = (CQJ, GPP) +GSV = (SNM, JKK) +CPH = (DCQ, FCP) +TDV = (JFD, HKH) +SBS = (NFC, CGC) +DBG = (GST, LGH) +LHS = (GHG, TRD) +BPP = (DLF, NJT) +TNT = (VNX, PTR) +VTN = (XHM, NMQ) +BRD = (KLF, HXJ) +TJT = (BVD, PFN) +GNK = (NMT, LLX) +DVH = (GQS, RVK) +KRJ = (QSP, TTQ) +KQC = (TNX, MDC) +XVS = (LRC, DLC) +XLP = (XCH, BJQ) +KQG = (LKK, TVP) +QHB = (JPL, JPL) +RGV = (SXB, FKH) +GSK = (JQN, THB) +XDT = (GLG, XKD) +XCT = (MMN, XDM) +KLF = (NPB, RRB) +XLT = (QRB, VHB) +HKS = (NNN, HPS) +NMT = (MSL, VXC) +PML = (NHN, FQH) +FMQ = (HGC, FBH) +JGG = (XTB, XTB) +KMC = (PPS, SVT) +GLG = (SPG, KFK) +QJN = (HJB, QCP) +SGH = (FDV, QPX) +DFM = (BFX, PNS) +CSK = (MDQ, GFX) +MXG = (MXC, BJV) +JTX = (SQN, JBK) +KFN = (VQM, PFH) +SFJ = (KDF, NKB) +JNK = (DLK, LHV) +DTG = (XHQ, DSR) +SHC = (FQV, HKK) +DBM = (VDP, PGK) +PNC = (LMH, RXH) +HXJ = (RRB, NPB) +MKS = (KMX, FKS) +NPA = (TPC, SNK) +LJK = (FPF, SHP) +LBH = (HQB, TTC) +JML = (LTN, SFS) +MXS = (FDL, SXH) +HHV = (VRL, JVC) +NQD = (KVJ, DXM) +HMA = (TVC, RBX) +BCP = (SQD, RGD) +SLP = (CQF, HXG) +KGF = (RPN, PKQ) +TGG = (VQM, PFH) +HQD = (MDV, GND) +BJX = (LCN, QMG) +NBQ = (NSV, VJR) +BBX = (KHG, FDC) +SSQ = (BNQ, MXX) +TST = (MJB, TDV) +JQL = (SDG, DLJ) +TVN = (SJM, KMC) +XHD = (DDG, RSG) +GQA = (NQS, CNH) +QFL = (QSQ, VVN) +THG = (FBM, VQX) +QLZ = (RBX, TVC) +TPM = (DQN, MGG) +QXV = (MTK, KMS) +VNX = (PTP, VSD) +STQ = (XDC, JFR) +XVQ = (PJM, MRN) +XTT = (BHF, RBR) +LQS = (DBB, HNR) +KXG = (FKS, KMX) +XCP = (MXK, DBX) +QRV = (JSK, STC) +VVG = (DRF, QNR) +FTC = (CSK, FPC) +GFV = (VSK, GFQ) +JSM = (LNC, XTF) +LJC = (JFG, XBK) +TQD = (XJQ, MFM) +HJS = (LLX, NMT) +CBP = (PTX, LGD) +LGT = (CTD, CTD) +HMP = (FQJ, KGC) +MSL = (MSD, BFL) +QPX = (QFH, JMK) +KBH = (MGF, TMH) +XMT = (MXC, BJV) +XGR = (KPF, DLH) +RGH = (MBM, KNT) +CDP = (BLG, NVN) +BLG = (TQC, DTD) +MSD = (RVP, RQP) +KXT = (CVM, JQL) +MRN = (MNX, PNC) +RLG = (BNP, VNR) +PSH = (XQG, SLP) +XTF = (NTT, VGT) +KVJ = (JVX, HPJ) +PGF = (KRJ, CRS) +VSV = (NKQ, PJG) +TLV = (QHJ, GFG) +BNP = (NFR, PGR) +XQG = (CQF, HXG) +KGC = (FKF, KCS) +HQF = (QPX, FDV) +PFN = (JGX, FMQ) +HFD = (DBG, CBD) +KQZ = (HXJ, KLF) +HPM = (VSV, LTR) +FGX = (SVR, GQB) +SGJ = (THB, JQN) +NKK = (QHB, QHB) +FLF = (RLC, MXP) +SRV = (QHM, LQS) +NPB = (BPG, CVQ) +VNR = (NFR, PGR) +FNF = (TXL, CXT) +PTB = (QXQ, BDK) +BXN = (HQF, SGH) +RGT = (MGN, GFN) +FSP = (VRK, QNN) +GHT = (PML, HTJ) +CBD = (LGH, GST) +LMH = (TJC, DNN) +PTP = (GNK, HJS) +XDC = (GHT, JTR) +HTJ = (NHN, FQH) +XFK = (NKX, HTV) +PBP = (CJJ, GKS) +KMX = (XSJ, PMK) +CVQ = (FKX, GXP) +SFV = (MXS, FLR) +BQH = (VMH, PKT) +NFR = (RTX, SBJ) +KCS = (XGR, JXT) +GND = (SFJ, DGL) +DTF = (JCC, LVC) +KLM = (XLP, QRQ) +VQV = (DNC, SST) +NKF = (KFN, TGG) +CJT = (LDP, QKM) +NPF = (TNC, LXF) +MHK = (MLX, NHX) +LGD = (DLP, CNJ) +MLF = (QKK, QRK) +LQB = (NKJ, SHN) +SNS = (KMV, HCG) +VPN = (HFV, LNX) +XTB = (XLT, VRF) +LNX = (HFB, QVF) +XGF = (NRN, KCF) +PNS = (JNQ, MCT) +BJG = (DNC, SST) +PQN = (SCL, VPX) +NGQ = (DGT, RLF) +GGX = (LQS, QHM) +VVT = (MHK, LTJ) +QJH = (XTF, LNC) +BBP = (FNX, RTK) +DDP = (JBR, KLD) +GDV = (KXT, BJT) +GDT = (CFB, PSH) +LGH = (CRK, SCF) +JNB = (DXQ, FBK) +DLH = (XJD, GDT) +NCQ = (MXP, RLC) +LXP = (SPR, RTF) +GRQ = (FNX, RTK) +KBJ = (DNB, TDP) +LXK = (CTD, JML) +DBB = (TJD, FNF) +RBR = (JTX, XKN) +GPD = (LXN, PLD) +JNM = (QRM, MSV) +LNC = (VGT, NTT) +GVT = (VVN, QSQ) +KCD = (GFB, MFL) +HDG = (VFQ, DTF) +RGD = (GGX, SRV) +KJK = (SRJ, QGV) +DSL = (MNG, DVH) +DSR = (VQV, BJG) +NHB = (HPS, NNN) +JVX = (JRT, GDQ) +TGB = (DCG, VXK) +MXN = (PST, GBF) +CTP = (XGM, SFV) +BPG = (GXP, FKX) +HRT = (LXF, TNC) +SST = (HDG, VJS) +PDP = (XJQ, MFM) +BDK = (TFM, GRM) +PPS = (RQV, BXN) +SSS = (TJQ, GNQ) +TXL = (QRV, PPH) +RRQ = (RXF, PGF) +PSX = (LLM, FXM) +FBK = (JDQ, DSX) +JLR = (LSM, NXT) +SPR = (DTG, RKQ) +PGC = (TJT, HXC) +LLD = (LHS, RLV) +NRH = (XBB, FGX) +SXH = (HMP, LSK) +JVC = (MLN, XKM) +MGF = (GGT, XMS) +TTS = (TNX, TNX) +FCP = (PLJ, KND) +LRX = (TVP, LKK) +VKJ = (PGN, XPX) +VRL = (XKM, MLN) +RQV = (SGH, HQF) +CRS = (QSP, TTQ) +BJC = (FCJ, TSC) +CSP = (BNM, FLN) +XHQ = (BJG, VQV) +CRK = (DKC, QQQ) +HFB = (BVM, VMP) +SQN = (QJN, KKV) +DGK = (FVX, RGT) +HTP = (HCF, HFR) +RFT = (NMF, DRL) +TRJ = (SHN, NKJ) +XJD = (PSH, CFB) +FQJ = (FKF, KCS) +VHB = (KDM, DSB) +SKR = (NKX, HTV) +LCN = (TLV, FMC) +MTC = (PST, GBF) +QRK = (XNR, SPD) +TCK = (MDK, BCP) +DNN = (HHV, MVS) +JNQ = (PBP, VDG) +NKQ = (MKX, HVD) +FTV = (MNG, DVH) +SJM = (SVT, PPS) +KCB = (NKK, CNF) +KJN = (PRV, BVK) +PRV = (SVP, FTM) +HFV = (HFB, QVF) +NFC = (FVC, TBN) +LMC = (QRK, QKK) +KNF = (CHN, GFV) +XNP = (SGJ, GSK) +QQB = (MLF, LMC) +CVM = (DLJ, SDG) +RSG = (LBH, TLD) +PGR = (RTX, SBJ) +VTD = (QGV, SRJ) +LBC = (PRH, CSP) +RKX = (NHL, XMM) +MXK = (XJN, PTB) +MJD = (DLC, LRC) +GDR = (FCX, KNF) +VXK = (THG, BPN) +GPP = (NRC, DHQ) +SDN = (FKH, SXB) +KJH = (BJX, VHX) +RNQ = (DNX, GPL) +VQX = (RXP, SSS) +PPH = (JSK, STC) +KKV = (HJB, QCP) +ZZZ = (FGX, XBB) +PTN = (KCD, HPQ) +GMP = (KHG, FDC) +NTT = (KXR, FMP) +GBF = (KXG, MKS) +VPX = (JFB, HSN) +SVG = (BPP, RPK) +PJG = (MKX, HVD) +HNR = (TJD, FNF) +XBB = (SVR, GQB) +FBM = (SSS, RXP) +RTX = (QJQ, KJN) +MSV = (KQH, LRF) +MGN = (LGT, LXK) +QDH = (CFV, DHZ) +NPR = (GDR, DCF) +HSN = (VLG, QNC) +PTM = (VGG, CQX) +VCP = (BCL, XDT) +LBP = (MPD, MPD) +NRK = (NNL, XKC) +QCT = (BBL, SVH) +RPL = (MMH, CDP) +RXH = (TJC, DNN) +DGL = (KDF, NKB) +GTQ = (PGF, RXF) +FXG = (BGH, MTH) +FQH = (VCJ, HPM) +LTN = (SCP, SCP) +JMK = (LPX, JNM) +SCL = (JFB, HSN) +TKV = (XHC, HQD) +BDT = (TTS, KQC) +MXX = (SKB, LPC) +RPN = (QJK, BXM) +MFL = (NDC, TPM) +DXM = (HPJ, JVX) +QXM = (LHS, RLV) +QHM = (HNR, DBB) +QRB = (KDM, DSB) +JMG = (PLD, LXN) +QSQ = (BNS, XNC) +CXA = (XLT, VRF) +MXC = (LQD, QXV) +CNJ = (QQP, PXV) +BPM = (BRD, BRD) +BFV = (FCJ, TSC) +KPL = (RPL, HBT) +JJR = (QNN, VRK) +KHG = (VDS, LKJ) +DRC = (HFR, HCF) +DLF = (RFT, STN) +GKS = (QQB, RLT) +TBD = (LFP, PQN) +XNC = (QBD, DDP) +TGC = (JNB, JXF) +KCF = (LBP, JHT) +NKB = (CCJ, RGH) +NPH = (JQF, QJC) +BJQ = (LJC, QMT) +GTS = (TDP, DNB) +XSJ = (KTN, VXJ) +QXQ = (GRM, TFM) +FCJ = (FKJ, DSK) +FPF = (CQH, HML) +VCJ = (LTR, VSV) +QJK = (LBC, GMB) +PMK = (VXJ, KTN) +FXM = (BNT, VVG) +DDG = (TLD, LBH) +MDB = (FDJ, TST) +BSF = (VXK, DCG) +BVK = (FTM, SVP) +RTG = (JSH, LKD) +BPN = (VQX, FBM) +BJT = (CVM, JQL) +DFS = (BCP, MDK) +GRM = (MDB, VPC) +TRD = (NRK, HPF) +FKH = (XHD, SNT) +LXF = (BDX, TKV) +JBK = (KKV, QJN) +JBP = (BNP, VNR) +PKF = (BJX, VHX) +DLK = (DGK, XST) +TFM = (MDB, VPC) +VDP = (VVR, MHR) +RDP = (VJR, NSV) +PTX = (CNJ, DLP) +DCG = (THG, BPN) +BCV = (LTJ, MHK) +FKJ = (NBQ, RDP) +PHK = (KGF, SBX) +JDQ = (PTN, RFF) +TNC = (BDX, TKV) +KCJ = (RPK, BPP) +DLJ = (FTC, TGF) +FQG = (GVT, QFL) +LFP = (SCL, VPX) +PBG = (KNC, PFX) +QCP = (LRX, KQG) +NRC = (GPD, JMG) +PHH = (DGT, RLF) +XCH = (LJC, QMT) +VXJ = (KPL, SSC) +TNX = (BPM, BPM) +PTR = (VSD, PTP) +NDC = (DQN, DQN) +SVT = (RQV, BXN) +NTJ = (SHC, QCM) +SHM = (SNM, JKK) +TLD = (TTC, HQB) +MMN = (JNK, RRS) +NPC = (MTC, MXN) +NMF = (QBM, CTP) +CQX = (NRH, ZZZ) +BNT = (DRF, QNR) +BJZ = (CNH, NQS) +KFK = (XCT, PPG) +SDG = (TGF, FTC) +CBB = (HFV, LNX) +VFQ = (LVC, JCC) +LRF = (KLM, JGL) +TTC = (JLR, GFT) +PFH = (SHG, XTT) +RLT = (MLF, LMC) +XPJ = (JPL, BJZ) +PKQ = (BXM, QJK) +TNS = (GDR, DCF) +FKX = (PKG, QQL) +MJB = (HKH, JFD) +JTN = (JSM, QJH) +QTG = (NRN, KCF) +MPX = (CHR, TGC) +JKK = (CJT, PLN) +LKK = (DRC, HTP) +RXF = (KRJ, CRS) +QNC = (LFB, FQG) +RKQ = (DSR, XHQ) +LCX = (PGK, VDP) +KSG = (LLD, QXM) +RPK = (NJT, DLF) +KDM = (KSG, PLL) +TVP = (HTP, DRC) +DCB = (NKK, NKK) +DQN = (STJ, STJ) +JSH = (TRS, GKJ) +LDP = (XGS, LJK) +QRM = (LRF, KQH) +VGG = (NRH, NRH) +LLK = (VMH, PKT) +VSK = (PHH, NGQ) +JFB = (VLG, QNC) +BCL = (XKD, GLG) +RTF = (RKQ, DTG) +KPF = (GDT, XJD) +DHZ = (SNK, TPC) +LPC = (DCB, KCB) +KDF = (RGH, CCJ) +PLL = (QXM, LLD) +XHS = (FXM, LLM) +BHF = (JTX, XKN) +RRS = (DLK, LHV) +FFL = (HKS, NHB) +VRF = (QRB, VHB) +LSQ = (MRN, PJM) +SCD = (MXK, DBX) +SPD = (FXG, RDX) +CFM = (PQN, LFP) +QKK = (SPD, XNR) +LVC = (JJR, FSP) +RLV = (TRD, GHG) +HKK = (SSP, XNP) +JCC = (FSP, JJR) +JHT = (MPD, SCN) +RVP = (XVQ, LSQ) +HPQ = (GFB, MFL) +JRT = (VTN, SKP) +DTD = (TGB, BSF) +PKG = (SKX, DGB) +VMP = (RLG, JBP) +DSX = (RFF, PTN) +QRQ = (BJQ, XCH) +LLX = (VXC, MSL) +SVH = (DFS, TCK) +XNR = (RDX, FXG) +QKM = (LJK, XGS) +MMH = (BLG, NVN) +SKB = (DCB, KCB) +JXT = (KPF, DLH) +SVV = (BCV, VVT) +KLD = (MHM, PVJ) +QNN = (SVV, NQK) +FCX = (GFV, CHN) +BNS = (QBD, DDP) +SHP = (HML, CQH) +TJD = (TXL, CXT) +BQF = (FCP, DCQ) +MKX = (SNS, CCN) +JKF = (NPH, KGL) +LFB = (QFL, GVT) +DCQ = (PLJ, KND) +SVP = (VGX, JCR) +PGN = (XMT, MXG) +NVZ = (VRF, XLT) +VBR = (BDM, LXP) +GTX = (PHK, DSN) +BDX = (XHC, HQD) +JGX = (HGC, FBH) +BBL = (DFS, TCK) +KNT = (BBX, GMP) +TLP = (LXH, TKF) +TDS = (CBB, VPN) +CTD = (LTN, LTN) +HCG = (RRQ, GTQ) +VRG = (TTS, KQC) +RLC = (TLP, FQX) +FBH = (DBM, LCX) +SCP = (TVC, RBX) +CGC = (TBN, FVC) +JFG = (NQP, GDV) +BVM = (RLG, JBP) +DCF = (KNF, FCX) +BJV = (QXV, LQD) +QBD = (JBR, KLD) +QFG = (BBL, SVH) +RFF = (HPQ, KCD) +QJQ = (PRV, BVK) +FMC = (QHJ, GFG) +PXV = (STQ, VHK) +VVN = (XNC, BNS) +NHG = (DXM, KVJ) +SSP = (SGJ, GSK) +QMT = (JFG, XBK) +VRK = (NQK, SVV) +SNT = (DDG, RSG) +RRB = (BPG, CVQ) +DXQ = (JDQ, DSX) +FMP = (SHM, GSV) +VMF = (FJX, VBR) +NKJ = (GKP, SBS) +XGM = (FLR, MXS) +SKX = (NLH, RTG) +XMS = (FDP, PRK) +SPG = (PPG, XCT) +QNR = (MPX, SXC) +MDC = (BPM, CTR) +SMR = (TJT, HXC) +TBN = (FJS, TDS) +BGH = (NPF, HRT) +VDS = (XHS, PSX) +RBX = (CDJ, PBG) +VLC = (CQJ, GPP) +SVR = (GTX, HLC) +MDV = (DGL, SFJ) +GMB = (CSP, PRH) +QSP = (TBD, CFM) +GFQ = (PHH, NGQ) +HXG = (BDT, VRG) +PPG = (XDM, MMN) +MSH = (SHC, QCM) +CHR = (JXF, JNB) +RDX = (MTH, BGH) +VXC = (MSD, BFL) +DLP = (PXV, QQP) +MXP = (FQX, TLP) +TTQ = (TBD, CFM) +GHG = (HPF, NRK) +SNK = (BQF, CPH) +MGG = (STJ, QDH) +CCJ = (MBM, KNT) +NNL = (KBH, LKC) +LKD = (GKJ, TRS) +GFN = (LGT, LXK) +QBM = (XGM, SFV) +STJ = (CFV, CFV) +DSK = (RDP, NBQ) +TSC = (FKJ, DSK) +NSV = (LQB, TRJ) +FKF = (XGR, JXT) +DNX = (NTJ, MSH) +NLH = (JSH, LKD) +CFV = (TPC, SNK) +DRP = (VBR, FJX) +BDM = (SPR, RTF) +TGF = (FPC, CSK) +CNH = (VXD, LFX) +BFL = (RQP, RVP) +XHC = (GND, MDV) +CJJ = (RLT, QQB) +HPH = (XMM, NHL) +PRH = (FLN, BNM) +JCR = (THT, VCP) +VHK = (XDC, JFR) +NQP = (KXT, BJT) +CDJ = (KNC, PFX) +SCF = (DKC, QQQ) +JBR = (MHM, PVJ) +TPC = (BQF, CPH) +FDC = (LKJ, VDS) +KNC = (XCQ, VKJ) +VQM = (SHG, XTT) +KND = (QCS, TVN) +MDM = (GPL, DNX) +FJX = (LXP, BDM) +BDV = (XTB, NVZ) +LBM = (KFN, TGG) +XKC = (KBH, LKC) +QVF = (VMP, BVM) +SHG = (RBR, BHF) +DNB = (SVC, SSQ) +SCN = (JGG, BDV) +SXC = (TGC, CHR) +XSL = (KCJ, SVG) +TKF = (VLC, LVJ) +LKJ = (XHS, PSX) +VHX = (QMG, LCN) +HGC = (LCX, DBM) +MLN = (HFD, KVM) +XDM = (JNK, RRS) +RTK = (PKD, NPC) +QQQ = (DSL, FTV) +VJS = (DTF, VFQ) +LLM = (VVG, BNT) +MFM = (NHG, NQD) +NQK = (VVT, BCV) +NHN = (HPM, VCJ) +SKP = (NMQ, XHM) +HXC = (BVD, PFN) +LSK = (FQJ, KGC) +FPC = (GFX, MDQ) +STC = (RBF, PTM) +CTR = (BRD, KQZ) +BNQ = (SKB, LPC) +QQL = (SKX, DGB) +NHX = (RKX, HPH) +QHJ = (GRQ, BBP) +XCQ = (XPX, PGN) +HTV = (GTS, KBJ) +JXF = (DXQ, FBK) +JTR = (HTJ, PML) +JHB = (JSM, QJH) +CQF = (BDT, VRG) +GNQ = (QCT, QFG) +TQC = (TGB, BSF) +SFS = (SCP, QLZ) +MDQ = (MJD, XVS) +DLC = (TMM, DFM) +FLN = (RGV, SDN) +PVJ = (QTG, XGF) +JFR = (JTR, GHT) +PGK = (VVR, MHR) +TDP = (SSQ, SVC) +RLF = (RKP, SKK) +HJN = (NHB, HKS) +VJR = (TRJ, LQB) +VGX = (VCP, THT) +DSB = (PLL, KSG) +FTM = (VGX, JCR) +MHR = (LBM, NKF) +JFD = (CBP, HLJ) +HKH = (CBP, HLJ) +FDV = (QFH, JMK) +NHL = (RQG, JKF) +CQJ = (DHQ, NRC) +HVD = (SNS, CCN) +PLN = (QKM, LDP) +THT = (BCL, XDT) +FDP = (SCD, XCP) +TJC = (HHV, MVS) +QCM = (HKK, FQV) +TJQ = (QCT, QFG) +HFR = (KJH, PKF) +RQG = (NPH, KGL) +SRJ = (TNS, NPR) +LTR = (NKQ, PJG) +XST = (FVX, RGT) +MBM = (GMP, BBX) +KVM = (CBD, DBG) +MVS = (VRL, JVC) +SSC = (RPL, HBT) +QQP = (VHK, STQ) +CHQ = (SVG, KCJ) +BVD = (FMQ, JGX) +FNX = (NPC, PKD) +FJS = (CBB, VPN) +PLD = (FFL, HJN) +TVC = (CDJ, PBG) +DBX = (XJN, PTB) +MDK = (SQD, RGD) +JPL = (NQS, CNH) +VDG = (GKS, CJJ) +HQB = (GFT, JLR) +GQS = (VMF, DRP) +PST = (MKS, KXG) +XGS = (SHP, FPF) +XDJ = (VNX, PTR) +MHM = (QTG, XGF) +SHN = (SBS, GKP) +LFX = (FLF, NCQ) +BFX = (JNQ, MCT) +XHM = (RNQ, MDM) +LXN = (HJN, FFL) +HPJ = (JRT, GDQ) +NVN = (DTD, TQC) +KGL = (QJC, JQF) +MCT = (PBP, VDG) +QFH = (LPX, JNM) +FVC = (FJS, TDS) +DRL = (QBM, CTP) +LTJ = (MLX, NHX) +THB = (JTN, JHB) +SBX = (RPN, PKQ) +KMV = (RRQ, GTQ) +MNX = (LMH, RXH) +LKC = (TMH, MGF) +TMM = (BFX, PNS) +TMH = (XMS, GGT) +LPX = (QRM, MSV) +STN = (DRL, NMF) +RKP = (CHQ, XSL) +DNC = (HDG, VJS) +XMM = (JKF, RQG) +GFT = (LSM, NXT) +LSM = (SMR, PGC) +FKS = (XSJ, PMK) +MPD = (JGG, JGG) +DKC = (DSL, FTV) +HLC = (DSN, PHK) +KMS = (BJC, BFV) +NJT = (RFT, STN) +JSK = (RBF, RBF) +HLJ = (LGD, PTX) +QMG = (TLV, FMC) +GPL = (NTJ, MSH) +RQP = (XVQ, LSQ) +GGT = (FDP, PRK) +XKN = (JBK, SQN) +FVX = (MGN, GFN) +GST = (CRK, SCF) +MTK = (BFV, BJC) +CCN = (KMV, HCG) +TRS = (PDP, TQD) +NRN = (LBP, JHT) +GFG = (GRQ, BBP) +XBK = (NQP, GDV) +CXT = (QRV, PPH) +FQV = (SSP, XNP) +GFB = (NDC, TPM) +VXD = (NCQ, FLF) +XPX = (MXG, XMT) +SQD = (SRV, GGX) +GKP = (NFC, CGC) +AAA = (XBB, FGX) +KXR = (SHM, GSV) +DGB = (RTG, NLH) +PJM = (PNC, MNX) +QGV = (NPR, TNS) +CFB = (SLP, XQG) +FDJ = (TDV, MJB) +DSN = (KGF, SBX) +FLR = (FDL, SXH) +JGL = (QRQ, XLP) +JQN = (JTN, JHB) +MTH = (NPF, HRT) +PRK = (SCD, XCP) +VHA = (KLF, HXJ) +VVR = (NKF, LBM) +CQH = (VTD, KJK) +DRF = (MPX, SXC) +FDL = (LSK, HMP) +PFX = (XCQ, VKJ) +HPF = (XKC, NNL) +LXH = (LVJ, VLC) +SVC = (MXX, BNQ) +GFX = (XVS, MJD) +DGT = (SKK, RKP) +XKD = (KFK, SPG) +XJN = (BDK, QXQ) +KQH = (KLM, JGL) +VMH = (SKR, XFK) +CHN = (VSK, GFQ) +LHV = (DGK, XST) +HCF = (PKF, KJH) +CNF = (QHB, XPJ) +QCS = (SJM, KMC) +GXP = (QQL, PKG) +SBJ = (QJQ, KJN) +DHQ = (GPD, JMG) +VLG = (FQG, LFB) +GDQ = (VTN, SKP) +NMQ = (MDM, RNQ) +XKM = (KVM, HFD) +BNM = (SDN, RGV) +MLX = (RKX, HPH) +QJC = (LLK, BQH) +HML = (KJK, VTD) +SKK = (CHQ, XSL) +FQX = (TKF, LXH) +PKD = (MXN, MTC) +NQS = (LFX, VXD) +HBT = (CDP, MMH) +LRC = (DFM, TMM) +NXT = (SMR, PGC) +SXB = (XHD, SNT) +RBF = (VGG, VGG) +RXP = (GNQ, TJQ) +RVK = (DRP, VMF)
\ No newline at end of file |
