Mexico - United Kingdom Trade 2025 Q1: Surplus & Growth
Key Market Takeaways: Mexico - United Kingdom Trade
The bilateral trade relationship between Mexico and United Kingdom is marked by robust export growth and a widening surplus in Q1 2025.
- Economic Pulse: Mexico posted a $290.94M trade surplus with the UK ($836.95M exports vs. $546.01M imports), driven by surging exports (+30.71% YoY peak) amid weaker UK demand for Mexican imports.
- Exchange Structure: Mexico - United Kingdom trade statistics reveal asymmetrical interdependence—Mexico relies heavily on HS Code 99 (85% of exports), while the UK supplies diversified tech (HS Code 90) and machinery (HS Code 84).
- Strategic Interdependence: The relationship reflects resource-for-tech complementarity, with Mexico’s concentrated commodity exports offset by higher-value UK manufacturing inputs.
This bilateral trade snapshot is based on verified customs data from the yTrade database.
Mexico-United Kingdom Trade Trend in Q1 2025
Mexico Export Performance: Shipments to United Kingdom
- Total Volume: $836.95M in Q1 2025.
- Growth Trend & Context:
- Strong YoY growth (+30.71% in Jan, +9.91% in Feb, +46.72% in Mar), indicating robust demand.
- No specific trade news to contextualize the surge.
- Key Volatility: March saw a sharp MoM spike (+61.84%), likely driven by seasonal or sectoral demand shifts.
Mexico Import Performance: Sourcing from United Kingdom
- Total Volume: $546.01M in Q1 2025.
- Growth Trend & Context:
- Mixed YoY performance: steep declines in Jan (-25.45%) and Feb (-33.63%), moderating in Mar (-9.04%).
- No news to explain the contraction.
- Key Volatility: February posted the lowest value ($183.30M) with a -11.8% MoM drop in January.
Mexico - United Kingdom Trade Balance & Market Dynamics
- Net Position: Mexico holds a trade surplus of $290.94M (Exports: $836.95M > Imports: $546.01M).
- Relationship Status: Mexico is a net exporter to the UK, with exports outpacing imports by 53.3% in Q1. The widening surplus suggests strengthening export competitiveness or weakening UK demand for Mexican imports.
Mexico Import Trend from United Kingdom 2025 Q1 (Source: yTrade)**
| Month | Value | MoM | YoY |
|---|---|---|---|
| Jan | 168.93M | -11.8% | -25.45% |
| Feb | 183.30M | 8.51% | -33.63% |
| Mar | 193.78M | 5.72% | -9.04% |
| Total | 546.01M | - | - |
Mexico Export Trend to United Kingdom 2025 Q1 (Source: yTrade)**
| Month | Value | MoM | YoY |
|---|---|---|---|
| Jan | 267.84M | 7.45% | 30.71% |
| Feb | 217.35M | -18.85% | 9.91% |
| Mar | 351.75M | 61.84% | 46.72% |
| Total | 836.95M | - | - |
Get Historical Mexico United Kingdom Trade Records
Mexico-United Kingdom Top Trading Products in Q1 2025
Mexico Export Profile: What Does Mexico Sell to United Kingdom
- Top Commodity: HS Code 99 dominates exports, accounting for 85.06% of total value (711.94M).
- Demand Driver: United Kingdom likely imports these goods for industrial processing, given their high share and potential classification as raw materials or intermediates.
- Concentration: Extreme concentration in HS Code 99 (>50% share), indicating heavy reliance on a single export category.
Mexico Import Profile: What Does Mexico Buy from United Kingdom
- Top Commodity: HS Code 99 leads imports with a 29.12% share (158.99M).
- Dependency Nature: Likely reflects a mix of industrial inputs or consumer goods, but without HS Code descriptions, precise classification is challenging.
Mexico - United Kingdom Trade Relationship Dynamics
- The Exchange Model: Resource-for-Tech Complementarity is evident. Mexico exports a highly concentrated commodity (HS Code 99) while importing a broader mix, including machinery (HS Code 84) and tech (HS Code 90).
- Value Chain Position: United Kingdom holds the higher value-add position, given its exports of machinery and tech (HS Codes 84, 90) versus Mexico's reliance on a single dominant export.
Import Analysis by Product: United Kingdom to Mexico (Source: yTrade)
| HS Code | Value | Percent |
|---|---|---|
| 99 | 158.99M | 29.12% |
| 84 | 106.53M | 19.51% |
| 87 | 56.69M | 10.38% |
| 90 | 48.49M | 8.88% |
| 85 | 35.06M | 6.42% |
| 22 | 31.43M | 5.76% |
| 39 | 20.71M | 3.79% |
| 38 | 17.01M | 3.12% |
| 30 | 12.20M | 2.24% |
| 73 | 7.05M | 1.29% |
Export Analysis by Product: Mexico to United Kingdom (Source: yTrade)
| HS Code | Value | Percent |
|---|---|---|
| 99 | 711.94M | 85.06% |
| 85 | 43.14M | 5.15% |
| 84 | 29.62M | 3.54% |
| 90 | 21.89M | 2.62% |
| 22 | 13.16M | 1.57% |
| 08 | 3.31M | 0.40% |
| 87 | 2.59M | 0.31% |
| 21 | 2.50M | 0.30% |
| 20 | 1.91M | 0.23% |
| 74 | 1.43M | 0.17% |
Check Detailed Mexico-United Kingdom Trade HS Code Breakdown
Future Outlook & Strategic Recommendations
Forecast
Mexico’s trade surplus with the United Kingdom is expected to widen further in Q2 2025, driven by sustained demand for its dominant HS Code 99 exports. The UK’s weakening import appetite for Mexican goods may persist, but Mexico’s export growth trajectory—bolstered by March’s 46.72% YoY surge—suggests resilience. However, overreliance on a single commodity (HS Code 99) poses risks if demand softens or global supply chains shift. Traders should anticipate volatility in bilateral flows, particularly if the UK’s economic conditions deteriorate.
Strategic Moves
- Diversify Export Basket: Mexican exporters must reduce dependency on HS Code 99 by identifying and scaling secondary commodities, such as machinery (HS Code 84) or tech (HS Code 90), to mitigate concentration risk.
- Lock in Long-Term Contracts: UK importers of Mexican goods should secure fixed-price agreements now to hedge against potential price spikes, given the erratic monthly growth patterns.
- Monitor UK Demand Signals: Businesses must track UK industrial and consumer trends closely, as further import declines could signal a broader demand slump requiring swift pivot strategies.
Frequently Asked Questions
How did Mexico - United Kingdom trade perform in 2025 Q1?
Mexico exported $836.95M to the UK (+30.71% YoY in Jan) and imported $546.01M (-25.45% YoY in Jan), showing strong export growth but declining imports.
What are the top exports from Mexico to United Kingdom?
HS Code 99 dominates Mexico's exports to the UK, accounting for 85.06% ($711.94M) of total shipments, likely raw materials or industrial intermediates.
What does Mexico import from United Kingdom?
HS Code 99 leads Mexico's imports (29.12% share, $158.99M), alongside machinery (HS Code 84) and tech (HS Code 90), reflecting a diversified import profile.
What is the trade balance between Mexico and United Kingdom?
Mexico holds a $290.94M trade surplus with the UK, with exports outpacing imports by 53.3%, indicating a widening surplus in Q1 2025.
Mexico - United Kingdom Trade 2024 Q4: Surplus & Risks
Mexico's $224M trade surplus with the UK faces risks as exports rely heavily on HS Code 99. Explore Mexico-UK trade trends and top products via yTrade data.
Mexico United States Trade 2023
LS0tCgp0aXRsZTogIk1leGljbyAtIFVuaXRlZCBTdGF0ZXMgVHJhZGUgMjAyMyBXaG9sZSBZZWFyOiAkMjE2QiBTdXJwbHVzIgpkZXNjcmlwdGlvbjogIk1leGljbydzICQyMTZCIHRyYWRlIHN1cnBsdXMgd2l0aCB0aGUgVS5TLiBpbiAyMDIzIGhpZ2hsaWdodHMgZGVlcCBzdXBwbHkgY2hhaW4gaW50ZWdyYXRpb24sIHdpdGggdmVoaWNsZXMgYW5kIG1pbmVyYWwgZnVlbHMgYXMgdG9wIHRyYWRpbmcgcHJvZHVjdHMuIEV4cGxvcmUgTWV4aWNvIFVuaXRlZCBTdGF0ZXMgdHJhZGUgdHJlbmRzIG9uIHlUcmFkZS4iCmltYWdlOiBodHRwczovL2lvLnl0cmFkZS5jb20veXRyYWRlLWJsb2cvQ292ZXIvbWV4aWNvLWRhdGEvbWV4aWNvLXVuaXRlZC1zdGF0ZXMtdHJhZGUtMjAyMy53ZWJwCmNyZWF0ZV9kYXRlOiAyMDI1LTEyLTE4CnVwZGF0ZV9kYXRlOiAyMDI1LTEyLTE4CmF1dGhvcjogeVRyYWRlCnNsdWc6IG1leGljby11bml0ZWQtc3RhdGVzLXRyYWRlLTIwMjMKY2F0ZWdvcnk6IEltcG9ydCBhbmQgRXhwb3J0IERhdGEKY2F0ZWdvcnlfc2x1ZzogaW1wb3J0LWFuZC1leHBvcnQtZGF0YQpzdWJfY2F0ZWdvcnk6IENvdW50cnkgVHJhZGUgUmVwb3J0cwpzdWJfY2F0ZWdvcnlfc2x1ZzogY291bnRyeS10cmFkZS1yZXBvcnRzCnRhZ3M6Ci0gaWQ6IDcKICBsYWJlbDogIkltcG9ydCBFeHBvcnQgRGF0YSIKICBzbHVnOiBpbXBvcnQtZXhwb3J0LWRhdGEKLSBpZDogMTIKICBsYWJlbDogIk1leGljbyIKICBzbHVnOiBtZXhpY28Kc2l0ZW1hcDoKICBsb2M6IC9tZXhpY28tdW5pdGVkLXN0YXRlcy10cmFkZS0yMDIzCiAgbGFzdG1vZDogMjAyNS0xMi0xOAogIGNoYW5nZWZyZXE6IG1vbnRobHkKICBwcmlvcml0eTogMC44Cm9nVGl0bGU6ICJNZXhpY28gLSBVbml0ZWQgU3RhdGVzIFRyYWRlIDIwMjMgV2hvbGUgWWVhcjogJDIxNkIgU3VycGx1cyIKb2dEZXNjcmlwdGlvbjogIk1leGljbydzICQyMTZCIHRyYWRlIHN1cnBsdXMgd2l0aCB0aGUgVS5TLiBpbiAyMDIzIGhpZ2hsaWdodHMgZGVlcCBzdXBwbHkgY2hhaW4gaW50ZWdyYXRpb24sIHdpdGggdmVoaWNsZXMgYW5kIG1pbmVyYWwgZnVlbHMgYXMgdG9wIHRyYWRpbmcgcHJvZHVjdHMuIEV4cGxvcmUgTWV4aWNvIFVuaXRlZCBTdGF0ZXMgdHJhZGUgdHJlbmRzIG9uIHlUcmFkZS4iCm9nSW1hZ2U6IGh0dHBzOi8vaW8ueXRyYWRlLmNvbS95dHJhZGUtYmxvZy9Db3Zlci9tZXhpY28tZGF0YS9tZXhpY28tdW5pdGVkLXN0YXRlcy10cmFkZS0yMDIzLndlYnAKdHdpdHRlckNhcmQ6IHN1bW1hcnkKdHdpdHRlclNpdGU6CnR3aXR0ZXJUaXRsZTogIk1leGljbyAtIFVuaXRlZCBTdGF0ZXMgVHJhZGUgMjAyMyBXaG9sZSBZZWFyOiAkMjE2QiBTdXJwbHVzIgp0d2l0dGVyRGVzY3JpcHRpb246ICJNZXhpY28ncyAkMjE2QiB0cmFkZSBzdXJwbHVzIHdpdGggdGhlIFUuUy4gaW4gMjAyMyBoaWdobGlnaHRzIGRlZXAgc3VwcGx5IGNoYWluIGludGVncmF0aW9uLCB3aXRoIHZlaGljbGVzIGFuZCBtaW5lcmFsIGZ1ZWxzIGFzIHRvcCB0cmFkaW5nIHByb2R1Y3RzLiBFeHBsb3JlIE1leGljbyBVbml0ZWQgU3RhdGVzIHRyYWRlIHRyZW5kcyBvbiB5VHJhZGUuIgp0d2l0dGVySW1hZ2U6IGh0dHBzOi8vaW8ueXRyYWRlLmNvbS95dHJhZGUtYmxvZy9Db3Zlci9tZXhpY28tZGF0YS9tZXhpY28tdW5pdGVkLXN0YXRlcy10cmFkZS0yMDIzLndlYnAKcm9ib3RzOiBpbmRleCwgZm9sbG93CgotLS0KCiMjIEtleSBNYXJrZXQgVGFrZWF3YXlzOiBNZXhpY28gLSBVbml0ZWQgU3RhdGVzIFRyYWRlICAKClRoZSBiaWxhdGVyYWwgdHJhZGUgcmVsYXRpb25zaGlwIGJldHdlZW4gKipNZXhpY28qKiBhbmQgKipVbml0ZWQgU3RhdGVzKiogc2hvd2Nhc2VzIHJvYnVzdCB0cmFkZSBsZXZlcmFnZSB3aXRoIGEgZG9taW5hbnQgc3VycGx1cyBpbiAyMDIzLiAgCgotICoqRWNvbm9taWMgUHVsc2U6KiogTWV4aWNvIHBvc3RlZCBhICoqJDIxNi4yOEIgdHJhZGUgc3VycGx1cyoqIHdpdGggdGhlIFUuUy4gKCQ0NzIuMjJCIGV4cG9ydHMgdnMuICQyNTUuOTRCIGltcG9ydHMpLCB0aG91Z2ggZ3Jvd3RoIHdhcyB2b2xhdGlsZeKAlGVhcmx5LXllYXIgc3RyZW5ndGggZmFkZWQgaW50byBtaWQteWVhciBjb250cmFjdGlvbnMgYmVmb3JlIGEgbW9kZXN0IHJlY292ZXJ5LiAgCi0gKipFeGNoYW5nZSBTdHJ1Y3R1cmU6KiogTWV4aWNvIC0gVW5pdGVkIFN0YXRlcyB0cmFkZSBzdGF0aXN0aWNzIHJldmVhbCAqKmRlZXAgc3VwcGx5IGNoYWluIGludGVncmF0aW9uKiosIHdpdGggdmVoaWNsZXMgKEhTIDg3KSBkcml2aW5nIDI1LjcyJSBvZiBleHBvcnRzIGFuZCBtaW5lcmFsIGZ1ZWxzIChIUyAyNykgbGVhZGluZyBpbXBvcnRzICgxNC45MCUpLiBPdmVybGFwcGluZyB0b3AgY2F0ZWdvcmllcyAoSFMgODQsIDg1KSBoaWdobGlnaHQgaW50cmEtaW5kdXN0cnkgdHJhZGUgaW4gbWFudWZhY3R1cmluZy4gIAotICoqU3RyYXRlZ2ljIEludGVyZGVwZW5kZW5jZToqKiBIaWdobHkgY29tcGxlbWVudGFyeSByb2xlc+KAlFUuUy4gc3VwcGxpZXMgaGlnaC12YWx1ZSBtYWNoaW5lcnkvdGVjaCwgd2hpbGUgTWV4aWNvIGV4cG9ydHMgZmluaXNoZWQgdmVoaWNsZXMsIHJlaW5mb3JjaW5nIE5vcnRoIEFtZXJpY2FuIHByb2R1Y3Rpb24gbmV0d29ya3MuICAKClRoaXMgYmlsYXRlcmFsIHRyYWRlIHNuYXBzaG90IGlzIGJhc2VkIG9uIHZlcmlmaWVkIGN1c3RvbXMgZGF0YSBmcm9tIHRoZSBbeVRyYWRlIGRhdGFiYXNlXShodHRwczovL3l0cmFkZS5jb20vZGF0YS1zb3VyY2VzKS4KCiMjIE1leGljby1Vbml0ZWQgU3RhdGVzIFRyYWRlIFRyZW5kIGluIFdob2xlIFllYXIgMjAyMwoKIyMjIE1leGljbyBFeHBvcnQgUGVyZm9ybWFuY2U6IFNoaXBtZW50cyB0byBVbml0ZWQgU3RhdGVzICAKLSAqKlRvdGFsIFZvbHVtZToqKiAkNDcyLjIyQiBpbiAyMDIzLiAgCi0gKipHcm93dGggVHJlbmQgJiBDb250ZXh0OioqICAKICAtIE1peGVkIFlvWSBwZXJmb3JtYW5jZSwgd2l0aCBlYXJseS15ZWFyIHN0cmVuZ3RoIChKYW46ICsyNy4wOSUpIGZhZGluZyBpbnRvIG1pZC15ZWFyIGNvbnRyYWN0aW9ucyAoU2VwOiAtNi42NSUpIGJlZm9yZSBtb2Rlc3QgcmVjb3ZlcnkgKERlYzogKzAuNjElKS4gIAogIC0gKipLZXkgVm9sYXRpbGl0eToqKiBNYXJjaCBzYXcgdGhlIGhpZ2hlc3QgTW9NIHN1cmdlICgrMTkuOTklKSwgd2hpbGUgSnVseSBwb3N0ZWQgdGhlIHNoYXJwZXN0IG1vbnRobHkgZHJvcCAoLTguNCUpLiAgCgojIyMgTWV4aWNvIEltcG9ydCBQZXJmb3JtYW5jZTogU291cmNpbmcgZnJvbSBVbml0ZWQgU3RhdGVzICAKLSAqKlRvdGFsIFZvbHVtZToqKiAkMjU1Ljk0QiBpbiAyMDIzLiAgCi0gKipHcm93dGggVHJlbmQgJiBDb250ZXh0OioqICAKICAtIFByZWRvbWluYW50bHkgbmVnYXRpdmUgWW9ZIHRyZW5kcywgcGVha2luZyBpbiBKYW51YXJ5ICgrMjMuMjUlKSBidXQgZGV0ZXJpb3JhdGluZyBzaGFycGx5IGJ5IG1pZC15ZWFyIChKdWw6IC0xNS4yNyUpLiAgCiAgLSAqKktleSBWb2xhdGlsaXR5OioqIEF1Z3VzdCByZWNvcmRlZCB0aGUgc3Ryb25nZXN0IE1vTSByZWJvdW5kICgrMTYuOTglKSwgd2hpbGUgRGVjZW1iZXIgaGFkIHRoZSBzdGVlcGVzdCBkZWNsaW5lICgtMTAuMTMlIE1vTSwgLTExLjgyJSBZb1kpLiAgCgojIyMgTWV4aWNvIC0gVW5pdGVkIFN0YXRlcyBUcmFkZSBCYWxhbmNlICYgTWFya2V0IER5bmFtaWNzICAKLSAqKk5ldCBQb3NpdGlvbjoqKiAqKlRyYWRlIHN1cnBsdXMgb2YgJDIxNi4yOEIqKiAoRXhwb3J0cyAkNDcyLjIyQiB2cy4gSW1wb3J0cyAkMjU1Ljk0QikuICAKLSAqKlJlbGF0aW9uc2hpcCBTdGF0dXM6KiogTWV4aWNvIG1haW50YWlucyBhIGRvbWluYW50IG5ldCBleHBvcnRlciByb2xlLCB3aXRoIGV4cG9ydHMgbmVhcmx5IGRvdWJsZSBpbXBvcnRzLCB1bmRlcnNjb3Jpbmcgcm9idXN0IHRyYWRlIGxldmVyYWdlIHdpdGggdGhlIFUuUy4KCiMjIyBNZXhpY28gSW1wb3J0IFRyZW5kIGZyb20gVW5pdGVkIFN0YXRlcyAyMDIzIFdob2xlIFllYXIgKFNvdXJjZTogeVRyYWRlKSoqCgp8IE1vbnRoIHwgVmFsdWUgfCBNb00gfCBZb1kgfAp8LS0tLS0tLXwtLS0tLS0tfC0tLS0tfC0tLS0tfAp8IEphbiB8IDIwLjU0QiB8IC0yLjE2JSB8IDIzLjI1JSB8CnwgRmViIHwgMjEuMzFCIHwgMy43NCUgfCAxMC40NSUgfAp8IE1hciB8IDIzLjUyQiB8IDEwLjM2JSB8IDEuODklIHwKfCBBcHIgfCAyMC4yMkIgfCAtMTQuMDMlIHwgLTcuNDMlIHwKfCBNYXkgfCAyMi40NEIgfCAxMC45OSUgfCAtNS40OCUgfAp8IEp1biB8IDIxLjU0QiB8IC00LjAyJSB8IC0xNC44MSUgfAp8IEp1bCB8IDE5LjcxQiB8IC04LjUlIHwgLTE1LjI3JSB8CnwgQXVnIHwgMjMuMDVCIHwgMTYuOTglIHwgLTcuMDglIHwKfCBTZXAgfCAyMi4xN0IgfCAtMy44MyUgfCAtNS4yOSUgfAp8IE9jdCB8IDIyLjMyQiB8IDAuNjglIHwgMi4wNiUgfAp8IE5vdiB8IDIwLjYwQiB8IC03LjczJSB8IC0yLjY3JSB8CnwgRGVjIHwgMTguNTFCIHwgLTEwLjEzJSB8IC0xMS44MiUgfAp8ICoqVG90YWwqKiB8ICoqMjU1Ljk0QioqIHwgLSB8IC0gfAoKIyMjIE1leGljbyBFeHBvcnQgVHJlbmQgdG8gVW5pdGVkIFN0YXRlcyAyMDIzIFdob2xlIFllYXIgKFNvdXJjZTogeVRyYWRlKSoqCgp8IE1vbnRoIHwgVmFsdWUgfCBNb00gfCBZb1kgfAp8LS0tLS0tLXwtLS0tLS0tfC0tLS0tfC0tLS0tfAp8IEphbiB8IDMzLjQyQiB8IC0xNS4xNSUgfCAyNy4wOSUgfAp8IEZlYiB8IDM1Ljk1QiB8IDcuNTclIHwgMS43NSUgfAp8IE1hciB8IDQzLjE0QiB8IDE5Ljk5JSB8IDUuNjglIHwKfCBBcHIgfCAzNi45MUIgfCAtMTQuNDQlIHwgLTAuMDYlIHwKfCBNYXkgfCA0Mi4yNkIgfCAxNC41MSUgfCAxMC45MSUgfAp8IEp1biB8IDQxLjEyQiB8IC0yLjclIHwgMi4yNyUgfAp8IEp1bCB8IDM3LjY3QiB8IC04LjQlIHwgNi4yNCUgfAp8IEF1ZyB8IDQxLjU1QiB8IDEwLjMxJSB8IDQuNDElIHwKfCBTZXAgfCAzOS4wM0IgfCAtNi4wNyUgfCAtNi42NSUgfAp8IE9jdCB8IDQxLjIwQiB8IDUuNTclIHwgNS40MyUgfAp8IE5vdiB8IDQwLjMzQiB8IC0yLjEyJSB8IDMuMjYlIHwKfCBEZWMgfCAzOS42M0IgfCAtMS43MyUgfCAwLjYxJSB8CnwgKipUb3RhbCoqIHwgKio0NzIuMjJCKiogfCAtIHwgLSB8CgpbR2V0IEhpc3RvcmljYWwgTWV4aWNvIFVuaXRlZCBTdGF0ZXMgVHJhZGUgUmVjb3Jkc10oaHR0cHM6Ly95dHJhZGUuY29tL2NvdW50cnktY292ZXJhZ2UpCgojIyBNZXhpY28tVW5pdGVkIFN0YXRlcyBUb3AgVHJhZGluZyBQcm9kdWN0cyBpbiBXaG9sZSBZZWFyIDIwMjMKCiMjIyBNZXhpY28gRXhwb3J0IFByb2ZpbGU6IFdoYXQgRG9lcyBNZXhpY28gU2VsbCB0byBVbml0ZWQgU3RhdGVzICAKLSAqKlRvcCBDb21tb2RpdHk6KiogVmVoaWNsZXMgKEhTIDg3KSBkb21pbmF0ZSBleHBvcnRzLCBhY2NvdW50aW5nIGZvciAyNS43MiUgb2YgdG90YWwgdmFsdWUuICAKLSAqKkRlbWFuZCBEcml2ZXI6KiogU2VydmVzIHRoZSBVLlMuIGNvbnN1bWVyIG1hcmtldCBhbmQgYXV0b21vdGl2ZSBzdXBwbHkgY2hhaW5zLCByZWZsZWN0aW5nIGludGVncmF0ZWQgTm9ydGggQW1lcmljYW4gcHJvZHVjdGlvbiBuZXR3b3Jrcy4gIAotICoqQ29uY2VudHJhdGlvbjoqKiBUaGUgdG9wIDMgY2F0ZWdvcmllcyAoSFMgODcsIDg1LCA4NCkgcmVwcmVzZW50IDYxLjYxJSBvZiBleHBvcnRzLCBpbmRpY2F0aW5nIGhpZ2ggcmVsaWFuY2Ugb24gbWFudWZhY3R1cmluZyBzZWN0b3JzLiAgCgojIyMgTWV4aWNvIEltcG9ydCBQcm9maWxlOiBXaGF0IERvZXMgTWV4aWNvIEJ1eSBmcm9tIFVuaXRlZCBTdGF0ZXMgIAotICoqVG9wIENvbW1vZGl0eToqKiBNaW5lcmFsIGZ1ZWxzIChIUyAyNykgbGVhZCBpbXBvcnRzIGF0IDE0LjkwJSwgZm9sbG93ZWQgY2xvc2VseSBieSBtYWNoaW5lcnkgKEhTIDg0KSBhdCAxMy4yOSUuICAKLSAqKkRlcGVuZGVuY3kgTmF0dXJlOioqIEVuZXJneSBzZWN1cml0eSAoSFMgMjcpIGFuZCBjcml0aWNhbCB0ZWNobm9sb2d5IChIUyA4NCwgODUpIGRlcGVuZGVuY2llcyBhcmUgZXZpZGVudCwgd2l0aCBtYWNoaW5lcnkgaW1wb3J0cyBzdXBwb3J0aW5nIGluZHVzdHJpYWwgY2FwYWNpdHkuICAKCiMjIyBNZXhpY28gLSBVbml0ZWQgU3RhdGVzIFRyYWRlIFJlbGF0aW9uc2hpcCBEeW5hbWljcyAgCi0gKipUaGUgRXhjaGFuZ2UgTW9kZWw6KiogKipEZWVwIFN1cHBseSBDaGFpbiBJbnRlZ3JhdGlvbioqLCB3aXRoIG92ZXJsYXBwaW5nIHRvcCBjYXRlZ29yaWVzIChIUyA4NCwgODUsIDg3KSBpbiBib3RoIGV4cG9ydHMgYW5kIGltcG9ydHMuIFRoaXMgc2lnbmFscyBpbnRyYS1pbmR1c3RyeSB0cmFkZSwgcGFydGljdWxhcmx5IGluIGF1dG9tb3RpdmUgYW5kIGVsZWN0cm9uaWNzIGNvbXBvbmVudHMuICAKLSAqKlZhbHVlIENoYWluIFBvc2l0aW9uOioqIFRoZSBVLlMuIHN1cHBsaWVzIGhpZ2hlci12YWx1ZSBtYWNoaW5lcnkvdGVjaCAoSFMgODQsIDg1KSwgd2hpbGUgTWV4aWNvIGV4cG9ydHMgZmluaXNoZWQgdmVoaWNsZXMgKEhTIDg3KSwgc3VnZ2VzdGluZyBjb21wbGVtZW50YXJ5IHJvbGVzIGluIG1hbnVmYWN0dXJpbmcgdmFsdWUgY2hhaW5zLgoKIyMjIEltcG9ydCBBbmFseXNpcyBieSBQcm9kdWN0OiBVbml0ZWQgU3RhdGVzIHRvIE1leGljbyAoU291cmNlOiB5VHJhZGUpCgp8IEhTIENvZGUgfCBWYWx1ZSB8IFBlcmNlbnQgfAp8IC0tLSB8IC0tLSB8IC0tLSB8CnwgMjcgfCAzOC4xNUIgfCAxNC45MCUgfAp8IDg0IHwgMzQuMDBCIHwgMTMuMjklIHwKfCA4NyB8IDI1LjIxQiB8IDkuODUlIHwKfCA4NSB8IDI0Ljg5QiB8IDkuNzIlIHwKfCA5OSB8IDIyLjk5QiB8IDguOTglIHwKfCAzOSB8IDE5LjIzQiB8IDcuNTElIHwKfCA5MCB8IDcuNDlCIHwgMi45MyUgfAp8IDcyIHwgNi44M0IgfCAyLjY3JSB8CnwgMzggfCA2LjcyQiB8IDIuNjIlIHwKfCAxMCB8IDYuMTNCIHwgMi40MCUgfAoKIyMjIEV4cG9ydCBBbmFseXNpcyBieSBQcm9kdWN0OiBNZXhpY28gdG8gVW5pdGVkIFN0YXRlcyAoU291cmNlOiB5VHJhZGUpCgp8IEhTIENvZGUgfCBWYWx1ZSB8IFBlcmNlbnQgfAp8IC0tLSB8IC0tLSB8IC0tLSB8CnwgODcgfCAxMjEuNDhCIHwgMjUuNzIlIHwKfCA4NSB8IDkwLjA1QiB8IDE5LjA3JSB8CnwgODQgfCA3OS40NEIgfCAxNi44MiUgfAp8IDk5IHwgMzkuMTBCIHwgOC4yOCUgfAp8IDkwIHwgMjQuNzhCIHwgNS4yNSUgfAp8IDk0IHwgMTIuMDBCIHwgMi41NCUgfAp8IDIyIHwgOS44OUIgfCAyLjEwJSB8CnwgMDcgfCA5LjM3QiB8IDEuOTklIHwKfCAzOSB8IDkuMjhCIHwgMS45NiUgfAp8IDczIHwgNy40OEIgfCAxLjU4JSB8CgpbQ2hlY2sgRGV0YWlsZWQgTWV4aWNvLVVuaXRlZCBTdGF0ZXMgVHJhZGUgSFMgQ29kZSBCcmVha2Rvd25dKGh0dHBzOi8veXRyYWRlLmNvbS9ocy1jb2RlLWNvdmVyYWdlKQoKIyMgRnV0dXJlIE91dGxvb2sgJiBTdHJhdGVnaWMgUmVjb21tZW5kYXRpb25zICAKCiMjIyBGb3JlY2FzdCAgCk1leGljb+KAmXMgdHJhZGUgc3VycGx1cyB3aXRoIHRoZSBVbml0ZWQgU3RhdGVzIGlzIGV4cGVjdGVkIHRvIHJlbWFpbiByb2J1c3QgaW4gMjAyNCwgZHJpdmVuIGJ5IHN1c3RhaW5lZCBkZW1hbmQgZm9yIHZlaGljbGVzIChIUyA4NykgYW5kIGludGVncmF0ZWQgc3VwcGx5IGNoYWlucy4gSG93ZXZlciwgdm9sYXRpbGl0eSBpbiBlbmVyZ3kgaW1wb3J0cyAoSFMgMjcpIGFuZCBzbG93aW5nIG1hY2hpbmVyeSBvcmRlcnMgKEhTIDg0LCA4NSkgbWF5IHRlbXBlciBncm93dGgsIHBhcnRpY3VsYXJseSBpZiBVLlMuIGluZHVzdHJpYWwgZGVtYW5kIHdlYWtlbnMuIFRoZSBNZXhpY28gLSBVbml0ZWQgU3RhdGVzIHRyYWRlIGZvcmVjYXN0IGhpbmdlcyBvbiBzdGFibGUgcHJvZHVjdGlvbiBuZXR3b3JrcyBhbmQgY29tcGV0aXRpdmUgbGFib3IgY29zdHMsIGJ1dCBleHBvcnRlcnMgc2hvdWxkIHByZXBhcmUgZm9yIHBvdGVudGlhbCBtaWQteWVhciBjb3JyZWN0aW9ucyBpZiBVLlMuIGNvbnN1bWVyIHNwZW5kaW5nIHNvZnRlbnMuICAKCiMjIyBTdHJhdGVnaWMgTW92ZXMgIAotICoqTG9jayBpbiBFbmVyZ3kgU3VwcGx5IENvbnRyYWN0czoqKiBXaXRoIG1pbmVyYWwgZnVlbHMgKEhTIDI3KSBhcyBhIGNyaXRpY2FsIGltcG9ydCwgTWV4aWNhbiBidXllcnMgc2hvdWxkIHNlY3VyZSBsb25nLXRlcm0gYWdyZWVtZW50cyB0byBoZWRnZSBhZ2FpbnN0IHByaWNlIHN3aW5ncyBhbmQgZW5zdXJlIHN0YWJsZSBlbmVyZ3kgaW5wdXRzIGZvciBtYW51ZmFjdHVyaW5nLiAgCi0gKipEaXZlcnNpZnkgRXhwb3J0IE1hcmtldHMgZm9yIFZlaGljbGVzOioqIFdoaWxlIGF1dG9tb3RpdmUgZXhwb3J0cyBkb21pbmF0ZSwgb3Zlci1yZWxpYW5jZSBvbiBVLlMuIGRlbWFuZCBwb3NlcyByaXNrcy4gTWFudWZhY3R1cmVycyBtdXN0IGV4cGFuZCBpbnRvIHNlY29uZGFyeSBtYXJrZXRzIGxpa2UgQ2FuYWRhIGFuZCBMYXRpbiBBbWVyaWNhIHRvIG1pdGlnYXRlIGRvd250dXJucy4gIAotICoqT3B0aW1pemUgQ3Jvc3MtQm9yZGVyIExvZ2lzdGljczoqKiBHaXZlbiB0aGUgaGVhdnkgaW50cmEtaW5kdXN0cnkgdHJhZGUgaW4gbWFjaGluZXJ5IChIUyA4NCwgODUpLCBmaXJtcyBzaG91bGQgaW52ZXN0IGluIG5lYXItc2hvcmluZyBhbmQganVzdC1pbi10aW1lIGludmVudG9yeSBzeXN0ZW1zIHRvIHJlZHVjZSBib3R0bGVuZWNrcyBhbmQgdGFyaWZmIGV4cG9zdXJlIHVuZGVyIFVTTUNBLgoKIyMgRnJlcXVlbnRseSBBc2tlZCBRdWVzdGlvbnMKCiMjIyBIb3cgZGlkIE1leGljbyAtIFVuaXRlZCBTdGF0ZXMgdHJhZGUgcGVyZm9ybSBpbiAyMDIzIFdob2xlIFllYXI/ICAKTWV4aWNvIGV4cG9ydGVkICQ0NzIuMjJCIHRvIHRoZSBVbml0ZWQgU3RhdGVzLCB3aXRoIG1peGVkIFlvWSBncm93dGgsIHdoaWxlIGltcG9ydHMgdG90YWxlZCAkMjU1Ljk0Qiwgc2hvd2luZyBwcmVkb21pbmFudGx5IG5lZ2F0aXZlIHRyZW5kcy4gIAoKIyMjIFdoYXQgYXJlIHRoZSB0b3AgZXhwb3J0cyBmcm9tIE1leGljbyB0byBVbml0ZWQgU3RhdGVzPyAgClZlaGljbGVzIChIUyA4NykgZG9taW5hdGVkIE1leGljbydzIGV4cG9ydHMsIGZvbGxvd2VkIGJ5IG1hY2hpbmVyeSAoSFMgODQpIGFuZCBlbGVjdHJpY2FsIGVxdWlwbWVudCAoSFMgODUpLCBhY2NvdW50aW5nIGZvciA2MS42MSUgb2YgdG90YWwgZXhwb3J0IHZhbHVlLiAgCgojIyMgV2hhdCBkb2VzIE1leGljbyBpbXBvcnQgZnJvbSBVbml0ZWQgU3RhdGVzPyAgCk1pbmVyYWwgZnVlbHMgKEhTIDI3KSBhbmQgbWFjaGluZXJ5IChIUyA4NCkgd2VyZSB0aGUgdG9wIGltcG9ydHMsIHJlZmxlY3RpbmcgZW5lcmd5IHNlY3VyaXR5IGFuZCBpbmR1c3RyaWFsIHRlY2hub2xvZ3kgZGVwZW5kZW5jaWVzLiAgCgojIyMgV2hhdCBpcyB0aGUgdHJhZGUgYmFsYW5jZSBiZXR3ZWVuIE1leGljbyBhbmQgVW5pdGVkIFN0YXRlcz8gIApNZXhpY28gcmVjb3JkZWQgYSB0cmFkZSBzdXJwbHVzIG9mICQyMTYuMjhCIHdpdGggdGhlIFVuaXRlZCBTdGF0ZXMsIG1haW50YWluaW5nIGl0cyByb2xlIGFzIGEgZG9taW5hbnQgbmV0IGV4cG9ydGVyLg==
