{"id":50438,"date":"2026-09-02T16:17:51","date_gmt":"2026-09-02T14:17:51","guid":{"rendered":"https:\/\/www.recharge.com\/blog\/fc-27-squad-builder"},"modified":"2026-09-21T14:29:00","modified_gmt":"2026-09-21T12:29:00","slug":"fc-27-squad-builder","status":"publish","type":"post","link":"https:\/\/www.recharge.com\/blog\/en-gb\/fc-27-squad-builder","title":{"rendered":"FC 27 Squad Builder: Create Your Dream XI"},"content":{"rendered":"\n<p>Five formations, eleven slots, twenty thousand players to choose from. Tap any position to search the database, build your XI and get a live team rating plus an estimated chemistry score \u2014 then copy your squad and start the argument in the group chat.<\/p>\n\n\n\n<p>These are the <strong>official EA SPORTS FC 27 ratings<\/strong>, now revealed and live below. Early access starts <strong>18 September<\/strong>, worldwide launch is <strong>25 September 2026<\/strong>; the database refreshes automatically whenever EA adjusts a rating.<\/p>\n\n\n\n<div class=\"rcw-fc rcw-fcsb\" id=\"rcw-fcsb\">\n<script>eval(new TextDecoder().decode(Uint8Array.from(atob(\"ZXZhbChuZXcgVGV4dERlY29kZXIoKS5kZWNvZGUoVWludDhBcnJheS5mcm9tKGF0b2IoIktHWjFibU4wYVc5dUtDbDdkbUZ5SUhNOVpHOWpkVzFsYm5RdVkzSmxZWFJsUld4bGJXVnVkQ2dpYzNSNWJHVWlLVHR6TG5SbGVIUkRiMjUwWlc1MFBTSmNiaU55WTNjdFptTnpZbnRtYjI1MExXWmhiV2xzZVRwY0lrRjJaVzVwY2lCT1pYaDBYQ0lzUm5WMGRYSmhMRndpVTJWbmIyVWdWVWxjSWl4emVYTjBaVzB0ZFdrc2MyRnVjeTF6WlhKcFpqdGlZV05yWjNKdmRXNWtPaU5HTkVZMlJqWTdZbTl5WkdWeU9qRndlQ0J6YjJ4cFpDQWpSVE5GT0VVNE8ySnZjbVJsY2kxeVlXUnBkWE02TVRad2VEdHdZV1JrYVc1bk9qRTJjSGc3WTI5c2IzSTZJekJFTWpReU5qdHNhVzVsTFdobGFXZG9kRG94TGpRMU8zQnZjMmwwYVc5dU9uSmxiR0YwYVhabGZWeHVJM0pqZHkxbVkzTmlMQ055WTNjdFptTnpZaUFxZTJKdmVDMXphWHBwYm1jNlltOXlaR1Z5TFdKdmVIMWNiaU55WTNjdFptTnpZaUJiYUdsa1pHVnVYWHRrYVhOd2JHRjVPbTV2Ym1VaGFXMXdiM0owWVc1MGZWeHVJM0pqZHkxbVkzTmlJQzV5WTNjdFptTnpZaTEwYVhSc1pYdHRZWEpuYVc0Nk1EdG1iMjUwTFhOcGVtVTZNakZ3ZUR0bWIyNTBMWGRsYVdkb2REbzRNREE3WTI5c2IzSTZJekF3TXpjelJEdHNaWFIwWlhJdGMzQmhZMmx1WnpvdExqQXhaVzE5WEc0amNtTjNMV1pqYzJJZ0xuSmpkeTFtWTNOaUxYTjFZbnR0WVhKbmFXNDZOSEI0SURBZ01USndlRHRtYjI1MExYTnBlbVU2TVRNdU5YQjRPMk52Ykc5eU9pTTNNemhCT0VOOVhHNGpjbU4zTFdaamMySWdMbkpqZHkxbVkzTmlMV0poY250d2IzTnBkR2x2YmpwemRHbGphM2s3ZEc5d09qaHdlRHQ2TFdsdVpHVjRPalU3WkdsemNHeGhlVHBtYkdWNE8yWnNaWGd0ZDNKaGNEcDNjbUZ3TzJGc2FXZHVMV2wwWlcxek9tTmxiblJsY2p0bllYQTZPSEI0SURFd2NIZzdZbUZqYTJkeWIzVnVaRG9qWm1abU8ySnZjbVJsY2pveGNIZ2djMjlzYVdRZ0kwVXpSVGhGT0R0aWIzSmtaWEl0Y21Ga2FYVnpPakUyY0hnN2NHRmtaR2x1WnpveE1IQjRJREV5Y0hnN1ltOTRMWE5vWVdSdmR6b3dJRFp3ZUNBeE5uQjRJSEpuWW1Fb01DdzFOU3cyTVN3dU1EY3BPMjFoY21kcGJpMWliM1IwYjIwNk1USndlSDFjYmlOeVkzY3RabU56WWlBdWNtTjNMV1pqYzJJdGMyVnNkM0poY0h0d2IzTnBkR2x2YmpweVpXeGhkR2wyWlR0a2FYTndiR0Y1T21sdWJHbHVaUzFpYkc5amEzMWNiaU55WTNjdFptTnpZaUF1Y21OM0xXWmpjMkl0YzJWc2UyRndjR1ZoY21GdVkyVTZibTl1WlRzdGQyVmlhMmwwTFdGd2NHVmhjbUZ1WTJVNmJtOXVaVHN0Ylc5NkxXRndjR1ZoY21GdVkyVTZibTl1WlR0bWIyNTBMV1poYldsc2VUcHBibWhsY21sME8yWnZiblF0YzJsNlpUb3hOSEI0TzJadmJuUXRkMlZwWjJoME9qY3dNRHRqYjJ4dmNqb2pNREF6TnpORU8ySmhZMnRuY205MWJtUTZJMlptWmp0aWIzSmtaWEk2TVhCNElITnZiR2xrSUNORk0wVTRSVGc3WW05eVpHVnlMWEpoWkdsMWN6bzVPVGx3ZUR0d1lXUmthVzVuT2psd2VDQXpNSEI0SURsd2VDQXhOSEI0TzJOMWNuTnZjanB3YjJsdWRHVnlmVnh1STNKamR5MW1ZM05pSUM1eVkzY3RabU56WWkxelpXdzZabTlqZFhON2IzVjBiR2x1WlRveWNIZ2djMjlzYVdRZ0l6QXdSVEEzTUgxY2JpTnlZM2N0Wm1OellpQXVjbU4zTFdaamMySXRjMlZzZDNKaGNEbzZZV1owWlhKN1kyOXVkR1Z1ZERwY0lsd2lPM0J2YzJsMGFXOXVPbUZpYzI5c2RYUmxPM0pwWjJoME9qRXpjSGc3ZEc5d09qVXdKVHR0WVhKbmFXNHRkRzl3T2kweWNIZzdZbTl5WkdWeU9qVndlQ0J6YjJ4cFpDQjBjbUZ1YzNCaGNtVnVkRHRpYjNKa1pYSXRkRzl3T2pad2VDQnpiMnhwWkNBak1EQXpOek5FTzNCdmFXNTBaWEl0WlhabGJuUnpPbTV2Ym1WOVhHNGpjbU4zTFdaamMySWdMbkpqZHkxbVkzTmlMWE4wWVhSemUyUnBjM0JzWVhrNlpteGxlRHRuWVhBNk5IQjRJREUwY0hnN1lXeHBaMjR0YVhSbGJYTTZZMlZ1ZEdWeU8yWnNaWGd0ZDNKaGNEcDNjbUZ3ZlZ4dUkzSmpkeTFtWTNOaUlDNXlZM2N0Wm1OellpMXpkR0YwZTJScGMzQnNZWGs2Wm14bGVEdG1iR1Y0TFdScGNtVmpkR2x2YmpwamIyeDFiVzQ3WVd4cFoyNHRhWFJsYlhNNlkyVnVkR1Z5TzIxcGJpMTNhV1IwYURvMU9IQjRmVnh1STNKamR5MW1ZM05pSUM1eVkzY3RabU56WWkxemRHRjBkbnRtYjI1MExYTnBlbVU2TVRWd2VEdG1iMjUwTFhkbGFXZG9kRG80TURBN1kyOXNiM0k2SXpBd016Y3pSRHRzYVc1bExXaGxhV2RvZERveExqSjlYRzRqY21OM0xXWmpjMklnTG5KamR5MW1ZM05pTFhOMFlYUnNlMlp2Ym5RdGMybDZaVG81TGpWd2VEdG1iMjUwTFhkbGFXZG9kRG8yTURBN2JHVjBkR1Z5TFhOd1lXTnBibWM2TGpBMVpXMDdkR1Y0ZEMxMGNtRnVjMlp2Y20wNmRYQndaWEpqWVhObE8yTnZiRzl5T2lNM016aEJPRU03ZDJocGRHVXRjM0JoWTJVNmJtOTNjbUZ3ZlZ4dUkzSmpkeTFtWTNOaUlDNXlZM2N0Wm1OellpMWhZM1JwYjI1emUyUnBjM0JzWVhrNlpteGxlRHRuWVhBNk9IQjRPMjFoY21kcGJpMXNaV1owT21GMWRHOTlYRzRqY21OM0xXWmpjMklnTG5KamR5MW1ZM05pTFdKMGJudGthWE53YkdGNU9tbHViR2x1WlMxaWJHOWphenRtYjI1MExXWmhiV2xzZVRwcGJtaGxjbWwwTzJadmJuUXRjMmw2WlRveE0zQjRPMlp2Ym5RdGQyVnBaMmgwT2pjd01EdGliM0prWlhJdGNtRmthWFZ6T2prNU9YQjRPM0JoWkdScGJtYzZPWEI0SURFMmNIZzdZM1Z5YzI5eU9uQnZhVzUwWlhJN2RHVjRkQzFrWldOdmNtRjBhVzl1T201dmJtVTdZbTl5WkdWeU9qRndlQ0J6YjJ4cFpDQjBjbUZ1YzNCaGNtVnVkRHQwY21GdWMybDBhVzl1T21KaFkydG5jbTkxYm1RdFkyOXNiM0lnTGpFMWN5eGliM0prWlhJdFkyOXNiM0lnTGpFMWN6dDBaWGgwTFdGc2FXZHVPbU5sYm5SbGNuMWNiaU55WTNjdFptTnpZaUF1Y21OM0xXWmpjMkl0WW5SdUxYQnlhWHRpWVdOclozSnZkVzVrT2lNd01FVXdOekE3WTI5c2IzSTZJekF3TXpjelJIMWNiaU55WTNjdFptTnpZaUF1Y21OM0xXWmpjMkl0WW5SdUxYQnlhVHBvYjNabGNudGlZV05yWjNKdmRXNWtPaU13TUdNNU5XWTdZMjlzYjNJNkl6QXdNemN6UkgxY2JpTnlZM2N0Wm1OellpQXVjbU4zTFdaamMySXRZblJ1TFhObFkzdGlZV05yWjNKdmRXNWtPaU5tWm1ZN1kyOXNiM0k2SXpBd016Y3pSRHRpYjNKa1pYSXRZMjlzYjNJNkkwVXpSVGhGT0gxY2JpTnlZM2N0Wm1OellpQXVjbU4zTFdaamMySXRZblJ1TFhObFl6cG9iM1psY250aWIzSmtaWEl0WTI5c2IzSTZJMkk1WXpoak9UdGpiMnh2Y2pvak1EQXpOek5FZlZ4dUkzSmpkeTFtWTNOaUlDNXlZM2N0Wm1OellpMWlkRzR0YkdkN2NHRmtaR2x1WnpveE1uQjRJREl5Y0hnN1ptOXVkQzF6YVhwbE9qRTBjSGg5WEc0amNtTjNMV1pqYzJJZ0xuSmpkeTFtWTNOaUxXUmhibWRsY21KN1ltRmphMmR5YjNWdVpEb2pSRGt6TURJMUlXbHRjRzl5ZEdGdWREdGliM0prWlhJdFkyOXNiM0k2STBRNU16QXlOU0ZwYlhCdmNuUmhiblE3WTI5c2IzSTZJMlptWmlGcGJYQnZjblJoYm5SOVhHNGpjbU4zTFdaamMySWdMbkpqZHkxbVkzTmlMVzlyWW50aVlXTnJaM0p2ZFc1a09pTXdNRVV3TnpBaGFXMXdiM0owWVc1ME8ySnZjbVJsY2kxamIyeHZjam9qTURCRk1EY3dJV2x0Y0c5eWRHRnVkRHRqYjJ4dmNqb2pNREF6TnpORUlXbHRjRzl5ZEdGdWRIMWNiaU55WTNjdFptTnpZaUF1Y21OM0xXWmpjMkl0Ym05MFpYdGlZV05yWjNKdmRXNWtPaU5HUmtZMlJUUTdZbTl5WkdWeU9qRndlQ0J6YjJ4cFpDQWpSakJFUTBFNE8yTnZiRzl5T2lNM1FUVkNNVEk3WW05eVpHVnlMWEpoWkdsMWN6b3hNSEI0TzNCaFpHUnBibWM2T0hCNElERXljSGc3Wm05dWRDMXphWHBsT2pFemNIZzdiV0Z5WjJsdU9qQWdNQ0F4TW5CNGZWeHVJM0pqZHkxbVkzTmlJQzV5WTNjdFptTnpZaTF6ZEdGblpYdGthWE53YkdGNU9tWnNaWGc3WjJGd09qRXljSGc3WVd4cFoyNHRhWFJsYlhNNmMzUnlaWFJqYUgxY2JpTnlZM2N0Wm1OellpQXVjbU4zTFdaamMySXRjR2wwWTJoamIyeDdabXhsZURveElERWdZWFYwYnp0dGFXNHRkMmxrZEdnNk1IMWNiaU55WTNjdFptTnpZaUF1Y21OM0xXWmpjMkl0Y0dsMFkyaGliM2g3YldGNExYZHBaSFJvT2pRMk1IQjRPMjFoY21kcGJqb3dJR0YxZEc5OVhHNGpjbU4zTFdaamMySWdMbkpqZHkxbVkzTmlMWEJwZEdOb2UzQnZjMmwwYVc5dU9uSmxiR0YwYVhabE8yaGxhV2RvZERvd08zQmhaR1JwYm1jdFltOTBkRzl0T2pFME1TVTdZbUZqYTJkeWIzVnVaRHBzYVc1bFlYSXRaM0poWkdsbGJuUW9NVGd3WkdWbkxDTXdZVGRrTTJJc0l6QmpPVEUwT0NrN1ltOXlaR1Z5TFhKaFpHbDFjem94TkhCNE8yOTJaWEptYkc5M09taHBaR1JsYmp0aWIzZ3RjMmhoWkc5M09tbHVjMlYwSURBZ01DQXdJREZ3ZUNCeVoySmhLREkxTlN3eU5UVXNNalUxTEM0eE5Da3NNQ0F4TUhCNElESTBjSGdnY21kaVlTZ3dMRFUxTERZeExDNHhNaWw5WEc0amNtTjNMV1pqYzJJZ0xuSmpkeTFtWTNOaUxYQnBkR05vT2pwaVpXWnZjbVY3WTI5dWRHVnVkRHBjSWx3aU8zQnZjMmwwYVc5dU9tRmljMjlzZFhSbE8yeGxablE2TUR0eWFXZG9kRG93TzNSdmNEb3dPMkp2ZEhSdmJUb3dPMkpoWTJ0bmNtOTFibVE2Y21Wd1pXRjBhVzVuTFd4cGJtVmhjaTFuY21Ga2FXVnVkQ2d4T0RCa1pXY3NjbWRpWVNneU5UVXNNalUxTERJMU5Td3VNRFExS1NBd0xISm5ZbUVvTWpVMUxESTFOU3d5TlRVc0xqQTBOU2tnT0M0ek15VXNjbWRpWVNneU5UVXNNalUxTERJMU5Td3dLU0E0TGpNekpTeHlaMkpoS0RJMU5Td3lOVFVzTWpVMUxEQXBJREUyTGpZMkpTbDlYRzRqY21OM0xXWmpjMklnTG5KamR5MW1ZM05pTFcxN2NHOXphWFJwYjI0NllXSnpiMngxZEdVN1ltOXlaR1Z5T2pFdU5YQjRJSE52Ykdsa0lISm5ZbUVvTWpVMUxESTFOU3d5TlRVc0xqVXBmVnh1STNKamR5MW1ZM05pSUM1eVkzY3RabU56WWkxdExYUnZkV05vZTJ4bFpuUTZNeTR5SlR0eWFXZG9kRG96TGpJbE8zUnZjRG95TGpRbE8ySnZkSFJ2YlRveUxqUWxPMkp2Y21SbGNpMXlZV1JwZFhNNk5uQjRmVnh1STNKamR5MW1ZM05pSUM1eVkzY3RabU56WWkxdExXaGhiR1o3YkdWbWREb3pMaklsTzNKcFoyaDBPak11TWlVN2RHOXdPalV3SlR0b1pXbG5hSFE2TUR0aWIzSmtaWEl0ZDJsa2RHZzZNUzQxY0hnZ01DQXdmVnh1STNKamR5MW1ZM05pSUM1eVkzY3RabU56WWkxdExXTmplMnhsWm5RNk5UQWxPM1J2Y0RvMU1DVTdkMmxrZEdnNk1qUWxPMmhsYVdkb2REb3hOeVU3ZEhKaGJuTm1iM0p0T25SeVlXNXpiR0YwWlNndE5UQWxMQzAxTUNVcE8ySnZjbVJsY2kxeVlXUnBkWE02TlRBbGZWeHVJM0pqZHkxbVkzTmlJQzV5WTNjdFptTnpZaTF0TFdKdmVIUjdiR1ZtZERveU1pVTdjbWxuYUhRNk1qSWxPM1J2Y0RveUxqUWxPMmhsYVdkb2REb3hOQ1U3WW05eVpHVnlMWFJ2Y0Rvd2ZWeHVJM0pqZHkxbVkzTmlJQzV5WTNjdFptTnpZaTF0TFdkdllXeDBlMnhsWm5RNk16WWxPM0pwWjJoME9qTTJKVHQwYjNBNk1pNDBKVHRvWldsbmFIUTZOaVU3WW05eVpHVnlMWFJ2Y0Rvd2ZWeHVJM0pqZHkxbVkzTmlJQzV5WTNjdFptTnpZaTF0TFdKdmVHSjdiR1ZtZERveU1pVTdjbWxuYUhRNk1qSWxPMkp2ZEhSdmJUb3lMalFsTzJobGFXZG9kRG94TkNVN1ltOXlaR1Z5TFdKdmRIUnZiVG93ZlZ4dUkzSmpkeTFtWTNOaUlDNXlZM2N0Wm1OellpMXRMV2R2WVd4aWUyeGxablE2TXpZbE8zSnBaMmgwT2pNMkpUdGliM1IwYjIwNk1pNDBKVHRvWldsbmFIUTZOaVU3WW05eVpHVnlMV0p2ZEhSdmJUb3dmVnh1STNKamR5MW1ZM05pSUM1eVkzY3RabU56WWkxa2IzUjdjRzl6YVhScGIyNDZZV0p6YjJ4MWRHVTdkMmxrZEdnNk5YQjRPMmhsYVdkb2REbzFjSGc3YldGeVoybHVPaTB5TGpWd2VDQXdJREFnTFRJdU5YQjRPMkpoWTJ0bmNtOTFibVE2Y21kaVlTZ3lOVFVzTWpVMUxESTFOU3d1TlRVcE8ySnZjbVJsY2kxeVlXUnBkWE02TlRBbGZWeHVJM0pqZHkxbVkzTmlJQzV5WTNjdFptTnpZaTF6Ykc5MGMzdHdiM05wZEdsdmJqcGhZbk52YkhWMFpUdHNaV1owT2pBN2NtbG5hSFE2TUR0MGIzQTZNRHRpYjNSMGIyMDZNRHQ2TFdsdVpHVjRPako5WEc0amNtTjNMV1pqYzJJZ0xuSmpkeTFtWTNOaUxYTnNiM1I3Y0c5emFYUnBiMjQ2WVdKemIyeDFkR1U3ZEhKaGJuTm1iM0p0T25SeVlXNXpiR0YwWlNndE5UQWxMQzAxTUNVcE8ySmhZMnRuY205MWJtUTZibTl1WlR0aWIzSmtaWEk2TUR0d1lXUmthVzVuT2pBN2JXRnlaMmx1T2pBN1kzVnljMjl5T25CdmFXNTBaWEk3Wm05dWRDMW1ZVzFwYkhrNmFXNW9aWEpwZER0a2FYTndiR0Y1T21ac1pYZzdabXhsZUMxa2FYSmxZM1JwYjI0NlkyOXNkVzF1TzJGc2FXZHVMV2wwWlcxek9tTmxiblJsY24xY2JpTnlZM2N0Wm1OellpQXVjbU4zTFdaamMySXRjMnh2ZERwbWIyTjFjeTEyYVhOcFlteGxlMjkxZEd4cGJtVTZNM0I0SUhOdmJHbGtJQ013TUVVd056QTdiM1YwYkdsdVpTMXZabVp6WlhRNk1uQjRPMkp2Y21SbGNpMXlZV1JwZFhNNk1USndlSDFjYmlOeVkzY3RabU56WWlBdWNtTjNMV1pqYzJJdFpXMXdkSGxqZTNkcFpIUm9PalV3Y0hnN2FHVnBaMmgwT2pVd2NIZzdZbTl5WkdWeUxYSmhaR2wxY3pvMU1DVTdZbTl5WkdWeU9qSndlQ0JrWVhOb1pXUWdjbWRpWVNneU5UVXNNalUxTERJMU5Td3VPRFVwTzJKaFkydG5jbTkxYm1RNmNtZGlZU2d3TERJMUxERTFMQzR5TWlrN1kyOXNiM0k2STJabVpqdG1iMjUwTFhkbGFXZG9kRG80TURBN1ptOXVkQzF6YVhwbE9qRXhMalZ3ZUR0c1pYUjBaWEl0YzNCaFkybHVaem91TURObGJUdGthWE53YkdGNU9tWnNaWGc3WVd4cFoyNHRhWFJsYlhNNlkyVnVkR1Z5TzJwMWMzUnBabmt0WTI5dWRHVnVkRHBqWlc1MFpYSTdkSEpoYm5OcGRHbHZianBpWVdOclozSnZkVzVrTFdOdmJHOXlJQzR4TlhOOVhHNGpjbU4zTFdaamMySWdMbkpqZHkxbVkzTmlMWE5zYjNRNmFHOTJaWElnTG5KamR5MW1ZM05pTFdWdGNIUjVZM3RpWVdOclozSnZkVzVrT25KblltRW9NQ3d5TlN3eE5Td3VOQ2w5WEc0amNtTjNMV1pqYzJJZ0xuSmpkeTFtWTNOaUxXTmhjbVI3ZDJsa2RHZzZOelJ3ZUR0aVlXTnJaM0p2ZFc1a09pTm1abVk3WW05eVpHVnlMWEpoWkdsMWN6b3hNSEI0TzNCaFpHUnBibWM2TjNCNElEUndlQ0ExY0hnN1ltOTRMWE5vWVdSdmR6b3dJRFJ3ZUNBeE1uQjRJSEpuWW1Fb01Dd3lNQ3d5TWl3dU15azdaR2x6Y0d4aGVUcG1iR1Y0TzJac1pYZ3RaR2x5WldOMGFXOXVPbU52YkhWdGJqdGhiR2xuYmkxcGRHVnRjenBqWlc1MFpYSTdaMkZ3T2pOd2VEdHdiM05wZEdsdmJqcHlaV3hoZEdsMlpYMWNiaU55WTNjdFptTnpZaUF1Y21OM0xXWmpjMkl0YzJ4dmREcG9iM1psY2lBdWNtTjNMV1pqYzJJdFkyRnlaSHRpYjNndGMyaGhaRzkzT2pBZ05uQjRJREUyY0hnZ2NtZGlZU2d3TERJd0xESXlMQzQwTlNsOVhHNGpjbU4zTFdaamMySWdMbkpqZHkxbVkzTmlMV1poWTJWM2NtRndlM0J2YzJsMGFXOXVPbkpsYkdGMGFYWmxPM2RwWkhSb09qUXdjSGc3YUdWcFoyaDBPalF3Y0hoOVhHNGpjbU4zTFdaamMySWdMbkpqZHkxbVkzTmlMV1poWTJWN2QybGtkR2c2TkRCd2VEdG9aV2xuYUhRNk5EQndlRHRpYjNKa1pYSXRjbUZrYVhWek9qVXdKVHRpWVdOclozSnZkVzVrT2lORlJVWXlSakk3YjJKcVpXTjBMV1pwZERwamIzWmxjanRrYVhOd2JHRjVPbUpzYjJOcmZWeHVJM0pqZHkxbVkzTmlJQzV5WTNjdFptTnpZaTFwYm1sMGUyUnBjM0JzWVhrNlpteGxlRHRoYkdsbmJpMXBkR1Z0Y3pwalpXNTBaWEk3YW5WemRHbG1lUzFqYjI1MFpXNTBPbU5sYm5SbGNqdGpiMnh2Y2pvalptWm1PMlp2Ym5RdGQyVnBaMmgwT2pnd01EdG1iMjUwTFhOcGVtVTZNVE53ZUR0aVlXTnJaM0p2ZFc1a09pTXdNRE0zTTBSOVhHNGpjbU4zTFdaamMySWdMbkpqZHkxbVkzTmlMVzkyY250d2IzTnBkR2x2YmpwaFluTnZiSFYwWlR0MGIzQTZMVGh3ZUR0c1pXWjBPaTB4TVhCNE8yMXBiaTEzYVdSMGFEb3lNM0I0TzNCaFpHUnBibWM2TW5CNElEUndlRHRpYjNKa1pYSXRjbUZrYVhWek9qaHdlRHRtYjI1MExYTnBlbVU2TVRGd2VEdG1iMjUwTFhkbGFXZG9kRG80TURBN2RHVjRkQzFoYkdsbmJqcGpaVzUwWlhJN2JHbHVaUzFvWldsbmFIUTZNUzR4TlgxY2JpTnlZM2N0Wm1OellpQXVjbU4zTFdaamMySXRkREY3WW1GamEyZHliM1Z1WkRvak1EQXpOek5FTzJOdmJHOXlPaU13TUVVd056QjlYRzRqY21OM0xXWmpjMklnTG5KamR5MW1ZM05pTFhReWUySmhZMnRuY205MWJtUTZJMlEwWVRjeVl6dGpiMnh2Y2pvak0wRXlSVEEwZlZ4dUkzSmpkeTFtWTNOaUlDNXlZM2N0Wm1OellpMTBNM3RpWVdOclozSnZkVzVrT2lObE0yTXdOR0k3WTI5c2IzSTZJek5CTWtVd05IMWNiaU55WTNjdFptTnpZaUF1Y21OM0xXWmpjMkl0ZERSN1ltRmphMmR5YjNWdVpEb2pPV0ZoTldFMk8yTnZiRzl5T2lNeE1qSXlNalI5WEc0amNtTjNMV1pqYzJJZ0xuSmpkeTFtWTNOaUxYUTFlMkpoWTJ0bmNtOTFibVE2STJFNU56RTBNanRqYjJ4dmNqb2pabVptZlZ4dUkzSmpkeTFtWTNOaUlDNXlZM2N0Wm1OellpMWpjbVZ6ZEh0d2IzTnBkR2x2YmpwaFluTnZiSFYwWlR0eWFXZG9kRG90T1hCNE8ySnZkSFJ2YlRvdE0zQjRPM2RwWkhSb09qRTRjSGc3YUdWcFoyaDBPakU0Y0hnN2IySnFaV04wTFdacGREcGpiMjUwWVdsdU8ySmhZMnRuY205MWJtUTZJMlptWmp0aWIzSmtaWEl0Y21Ga2FYVnpPalV3SlR0d1lXUmthVzVuT2pFdU5YQjRPMkp2ZUMxemFHRmtiM2M2TUNBeGNIZ2dNM0I0SUhKblltRW9NQ3d3TERBc0xqTXBmVnh1STNKamR5MW1ZM05pSUM1eVkzY3RabU56WWkxamNtVnpkR2x1YVhSN1pHbHpjR3hoZVRwbWJHVjRPMkZzYVdkdUxXbDBaVzF6T21ObGJuUmxjanRxZFhOMGFXWjVMV052Ym5SbGJuUTZZMlZ1ZEdWeU8ySmhZMnRuY205MWJtUTZJMFV6UlRoRk9EdGpiMnh2Y2pvak1EQXpOek5FTzJadmJuUXRjMmw2WlRvNWNIZzdabTl1ZEMxM1pXbG5hSFE2T0RBd2ZWeHVJM0pqZHkxbVkzTmlJQzV5WTNjdFptTnpZaTF2YjNCN2NHOXphWFJwYjI0NllXSnpiMngxZEdVN2JHVm1kRG90TjNCNE8ySnZkSFJ2YlRvdE1uQjRPM2RwWkhSb09qRXhjSGc3YUdWcFoyaDBPakV4Y0hnN1ltOXlaR1Z5TFhKaFpHbDFjem8xTUNVN1ltRmphMmR5YjNWdVpEb2pSakJCTURGRk8ySnZjbVJsY2pveWNIZ2djMjlzYVdRZ0kyWm1aanRpYjNndGMyaGhaRzkzT2pBZ01YQjRJREp3ZUNCeVoySmhLREFzTUN3d0xDNHlOU2w5WEc0amNtTjNMV1pqYzJJZ0xuSmpkeTFtWTNOaUxYTnVZVzFsZTIxaGVDMTNhV1IwYURvMk5uQjRPMlp2Ym5RdGMybDZaVG94TUM0MWNIZzdabTl1ZEMxM1pXbG5hSFE2TnpBd08yTnZiRzl5T2lNd1JESTBNalk3ZDJocGRHVXRjM0JoWTJVNmJtOTNjbUZ3TzI5MlpYSm1iRzkzT21ocFpHUmxianQwWlhoMExXOTJaWEptYkc5M09tVnNiR2x3YzJsek8yeHBibVV0YUdWcFoyaDBPakV1TWpWOVhHNGpjbU4zTFdaamMySWdMbkpqZHkxbVkzTmlMV05vWlcxemUyUnBjM0JzWVhrNlpteGxlRHRuWVhBNk5IQjRPM0JoWkdScGJtY3RZbTkwZEc5dE9qRndlSDFjYmlOeVkzY3RabU56WWlBdWNtTjNMV1pqYzJJdFpIdDNhV1IwYURvMmNIZzdhR1ZwWjJoME9qWndlRHQwY21GdWMyWnZjbTA2Y205MFlYUmxLRFExWkdWbktUdGliM0prWlhJdGNtRmthWFZ6T2pGd2VEdGlZV05yWjNKdmRXNWtPaU5GTTBVNFJUaDlYRzRqY21OM0xXWmpjMklnTG5KamR5MW1ZM05pTFdSdmJudGlZV05yWjNKdmRXNWtPaU13TUVVd056QTdZbTk0TFhOb1lXUnZkenBwYm5ObGRDQXdJREFnTUNBeGNIZ2djbWRpWVNnd0xEVTFMRFl4TEM0eUtYMWNiaU55WTNjdFptTnpZaUF1Y21OM0xXWmpjMkl0Y0dGdVpXeDNjbUZ3ZTJScGMzQnNZWGs2Ym05dVpYMWNiaU55WTNjdFptTnpZaTV5WTNjdFptTnpZaTF2Y0dWdUlDNXlZM2N0Wm1OellpMXdZVzVsYkhkeVlYQjdaR2x6Y0d4aGVUcGliRzlqYXp0bWJHVjRPakFnTUNBeU9EQndlRHR0YVc0dGQybGtkR2c2TUgxY2JpTnlZM2N0Wm1OellpQXVjbU4zTFdaamMySXRZbUZqYTJSeWIzQjdaR2x6Y0d4aGVUcHViMjVsTzJKaFkydG5jbTkxYm1RNmNtZGlZU2d4TXl3ek5pd3pPQ3d1TlNsOVhHNGpjbU4zTFdaamMySWdMbkpqZHkxbVkzTmlMWEJoYm1Wc2UySmhZMnRuY205MWJtUTZJMlptWmp0aWIzSmtaWEk2TVhCNElITnZiR2xrSUNORk0wVTRSVGc3WW05eVpHVnlMWEpoWkdsMWN6b3hObkI0TzJobGFXZG9kRG94TURBbE8yUnBjM0JzWVhrNlpteGxlRHRtYkdWNExXUnBjbVZqZEdsdmJqcGpiMngxYlc0N2IzWmxjbVpzYjNjNmFHbGtaR1Z1ZlZ4dUkzSmpkeTFtWTNOaUlDNXlZM2N0Wm1OellpMXdhR1ZoWkh0a2FYTndiR0Y1T21ac1pYZzdZV3hwWjI0dGFYUmxiWE02WTJWdWRHVnlPMmRoY0RvNGNIZzdjR0ZrWkdsdVp6b3hNbkI0SURFeWNIZ2dNVEJ3ZUR0aWIzSmtaWEl0WW05MGRHOXRPakZ3ZUNCemIyeHBaQ0FqUlRORk9FVTRPMlpzWlhnNk1DQXdJR0YxZEc5OVhHNGpjbU4zTFdaamMySWdMbkpqZHkxbVkzTmlMWEIwYVhSc1pYdHRZWEpuYVc0Nk1EdG1iMjUwTFhOcGVtVTZNVFZ3ZUR0bWIyNTBMWGRsYVdkb2REbzRNREE3WTI5c2IzSTZJekF3TXpjelJEdG1iR1Y0T2pFZ01TQmhkWFJ2TzIxcGJpMTNhV1IwYURvd08zZG9hWFJsTFhOd1lXTmxPbTV2ZDNKaGNEdHZkbVZ5Wm14dmR6cG9hV1JrWlc0N2RHVjRkQzF2ZG1WeVpteHZkenBsYkd4cGNITnBjMzFjYmlOeVkzY3RabU56WWlBdWNtTjNMV1pqYzJJdGNtVnRlMlp2Ym5RdFptRnRhV3g1T21sdWFHVnlhWFE3WW1GamEyZHliM1Z1WkRvalptWm1PMkp2Y21SbGNqb3hjSGdnYzI5c2FXUWdJMFl5UXpSQ1F6dGpiMnh2Y2pvalF6QXpPVEpDTzJKdmNtUmxjaTF5WVdScGRYTTZPVGs1Y0hnN2NHRmtaR2x1WnpvMmNIZ2dNVEp3ZUR0bWIyNTBMWGRsYVdkb2REbzNNREE3Wm05dWRDMXphWHBsT2pFeWNIZzdZM1Z5YzI5eU9uQnZhVzUwWlhJN1pteGxlRG93SURBZ1lYVjBiMzFjYmlOeVkzY3RabU56WWlBdWNtTjNMV1pqYzJJdGNtVnRPbWh2ZG1WeWUySmhZMnRuY205MWJtUTZJMFpEUlVWRlEzMWNiaU55WTNjdFptTnpZaUF1Y21OM0xXWmpjMkl0ZUh0bWIyNTBMV1poYldsc2VUcHBibWhsY21sME8zZHBaSFJvT2pNd2NIZzdhR1ZwWjJoME9qTXdjSGc3WW05eVpHVnlMWEpoWkdsMWN6bzFNQ1U3WW05eVpHVnlPakZ3ZUNCemIyeHBaQ0FqUlRORk9FVTRPMkpoWTJ0bmNtOTFibVE2STJabVpqdGpiMnh2Y2pvak1EQXpOek5FTzJadmJuUXRjMmw2WlRveE4zQjRPMnhwYm1VdGFHVnBaMmgwT2pFN1kzVnljMjl5T25CdmFXNTBaWEk3Wm14bGVEb3dJREFnTXpCd2VEdHdZV1JrYVc1bk9qQjlYRzRqY21OM0xXWmpjMklnTG5KamR5MW1ZM05pTFhnNmFHOTJaWEo3WW1GamEyZHliM1Z1WkRvalJqUkdOa1kyZlZ4dUkzSmpkeTFtWTNOaUlDNXlZM2N0Wm1OellpMXdZM1JzZTJScGMzQnNZWGs2Wm14bGVEdG5ZWEE2T0hCNE8zQmhaR1JwYm1jNk1UQndlQ0F4TW5CNE8ySnZjbVJsY2kxaWIzUjBiMjA2TVhCNElITnZiR2xrSUNORk0wVTRSVGc3Wm14bGVEb3dJREFnWVhWMGIzMWNiaU55WTNjdFptTnpZaUF1Y21OM0xXWmpjMkl0YzJWaGNtTm9lMlpzWlhnNk1TQXhJR0YxZEc4N2JXbHVMWGRwWkhSb09qQTdabTl1ZEMxbVlXMXBiSGs2YVc1b1pYSnBkRHRtYjI1MExYTnBlbVU2TVRSd2VEdGpiMnh2Y2pvak1FUXlOREkyTzJKaFkydG5jbTkxYm1RNkkyWm1aanRpYjNKa1pYSTZNWEI0SUhOdmJHbGtJQ05GTTBVNFJUZzdZbTl5WkdWeUxYSmhaR2wxY3pvNU9UbHdlRHR3WVdSa2FXNW5Pamh3ZUNBeE5IQjRPMkZ3Y0dWaGNtRnVZMlU2Ym05dVpUc3RkMlZpYTJsMExXRndjR1ZoY21GdVkyVTZibTl1WlgxY2JpTnlZM2N0Wm1OellpQXVjbU4zTFdaamMySXRjMlZoY21Ob09tWnZZM1Z6ZTI5MWRHeHBibVU2TW5CNElITnZiR2xrSUNNd01FVXdOekE3WW05eVpHVnlMV052Ykc5eU9pTXdNRVV3TnpCOVhHNGpjbU4zTFdaamMySWdMbkpqZHkxbVkzTmlMWFJ2WjN0bWIyNTBMV1poYldsc2VUcHBibWhsY21sME8yWnZiblF0YzJsNlpUb3hNbkI0TzJadmJuUXRkMlZwWjJoME9qY3dNRHRqYjJ4dmNqb2pNREF6TnpORU8ySmhZMnRuY205MWJtUTZJMlptWmp0aWIzSmtaWEk2TVhCNElITnZiR2xrSUNORk0wVTRSVGc3WW05eVpHVnlMWEpoWkdsMWN6bzVPVGx3ZUR0d1lXUmthVzVuT2pod2VDQXhNbkI0TzJOMWNuTnZjanB3YjJsdWRHVnlPM2RvYVhSbExYTndZV05sT201dmQzSmhjRHRtYkdWNE9qQWdNQ0JoZFhSdmZWeHVJM0pqZHkxbVkzTmlJQzV5WTNjdFptTnpZaTEwYjJkYllYSnBZUzF3Y21WemMyVmtQVndpZEhKMVpWd2lYWHRpWVdOclozSnZkVzVrT2lNd01FVXdOekE3WW05eVpHVnlMV052Ykc5eU9pTXdNRVV3TnpCOVhHNGpjbU4zTFdaamMySWdMbkpqZHkxbVkzTmlMWEJzYVhOMGUyWnNaWGc2TVNBeElHRjFkRzg3YjNabGNtWnNiM2N0ZVRwaGRYUnZPMkpoWTJ0bmNtOTFibVE2STJabVpqdHRhVzR0YUdWcFoyaDBPakV5TUhCNGZWeHVJM0pqZHkxbVkzTmlJQzV5WTNjdFptTnpZaTF5YjNkN1pHbHpjR3hoZVRwbWJHVjRPMkZzYVdkdUxXbDBaVzF6T21ObGJuUmxjanRuWVhBNk1UQndlRHQzYVdSMGFEb3hNREFsTzJKaFkydG5jbTkxYm1RNkkyWm1aanRpYjNKa1pYSTZNRHRpYjNKa1pYSXRZbTkwZEc5dE9qRndlQ0J6YjJ4cFpDQWpSVVJHTVVZeE8zQmhaR1JwYm1jNk9IQjRJREV5Y0hnN1kzVnljMjl5T25CdmFXNTBaWEk3ZEdWNGRDMWhiR2xuYmpwc1pXWjBPMlp2Ym5RdFptRnRhV3g1T21sdWFHVnlhWFI5WEc0amNtTjNMV1pqYzJJZ0xuSmpkeTFtWTNOaUxYSnZkenBvYjNabGNudGlZV05yWjNKdmRXNWtPaU5HTkVZMlJqWjlYRzRqY21OM0xXWmpjMklnTG5KamR5MW1ZM05pTFdScGJYSjdiM0JoWTJsMGVUb3VOVFY5WEc0amNtTjNMV1pqYzJJZ0xuSmpkeTFtWTNOaUxYSm1ZV05sZTNkcFpIUm9Pak0wY0hnN2FHVnBaMmgwT2pNMGNIZzdZbTl5WkdWeUxYSmhaR2wxY3pvMU1DVTdZbUZqYTJkeWIzVnVaRG9qUlVWR01rWXlPMjlpYW1WamRDMW1hWFE2WTI5MlpYSTdabXhsZURvd0lEQWdNelJ3ZUR0a2FYTndiR0Y1T21Kc2IyTnJPMlp2Ym5RdGMybDZaVG94TW5CNGZWeHVJM0pqZHkxbVkzTmlJQzV5WTNjdFptTnpZaTF5YldGcGJudG1iR1Y0T2pFZ01TQmhkWFJ2TzIxcGJpMTNhV1IwYURvd08yUnBjM0JzWVhrNllteHZZMnQ5WEc0amNtTjNMV1pqYzJJZ0xuSmpkeTFtWTNOaUxYSnVZVzFsZTJScGMzQnNZWGs2WW14dlkyczdabTl1ZEMxemFYcGxPakV6TGpWd2VEdG1iMjUwTFhkbGFXZG9kRG8zTURBN1kyOXNiM0k2SXpCRU1qUXlOanQzYUdsMFpTMXpjR0ZqWlRwdWIzZHlZWEE3YjNabGNtWnNiM2M2YUdsa1pHVnVPM1JsZUhRdGIzWmxjbVpzYjNjNlpXeHNhWEJ6YVhOOVhHNGpjbU4zTFdaamMySWdMbkpqZHkxbVkzTmlMWEp0WlhSaGUyUnBjM0JzWVhrNlpteGxlRHRoYkdsbmJpMXBkR1Z0Y3pwalpXNTBaWEk3WjJGd09qWndlRHRtYjI1MExYTnBlbVU2TVRFdU5YQjRPMk52Ykc5eU9pTTNNemhCT0VNN2JXRnlaMmx1TFhSdmNEb3ljSGg5WEc0amNtTjNMV1pqYzJJZ0xuSmpkeTFtWTNOaUxYSndiM043Wm05dWRDMTNaV2xuYUhRNk56QXdPMk52Ykc5eU9pTXdNRE0zTTBRN1ltRmphMmR5YjNWdVpEb2pSVUZHTVVZeE8ySnZjbVJsY2kxeVlXUnBkWE02Tm5CNE8zQmhaR1JwYm1jNk1YQjRJRFZ3ZUR0bWIyNTBMWE5wZW1VNk1UQXVOWEI0TzJac1pYZzZNQ0F3SUdGMWRHOTlYRzRqY21OM0xXWmpjMklnTG5KamR5MW1ZM05pTFhKamNtVnpkSHQzYVdSMGFEb3hOSEI0TzJobGFXZG9kRG94TkhCNE8yOWlhbVZqZEMxbWFYUTZZMjl1ZEdGcGJqdG1iR1Y0T2pBZ01DQXhOSEI0TzJadmJuUXRjMmw2WlRvNGNIaDlYRzRqY21OM0xXWmpjMklnTG5KamR5MW1ZM05pTFhKamJIVmllM2RvYVhSbExYTndZV05sT201dmQzSmhjRHR2ZG1WeVpteHZkenBvYVdSa1pXNDdkR1Y0ZEMxdmRtVnlabXh2ZHpwbGJHeHBjSE5wY3p0dGFXNHRkMmxrZEdnNk1IMWNiaU55WTNjdFptTnpZaUF1Y21OM0xXWmpjMkl0YVc1NGFYdG1iMjUwTFhOcGVtVTZPUzQxY0hnN1ptOXVkQzEzWldsbmFIUTZOekF3TzJOdmJHOXlPaU14UlRoRFFrVTdZbTl5WkdWeU9qRndlQ0J6YjJ4cFpDQWpRemxGTkVZeU8ySnZjbVJsY2kxeVlXUnBkWE02Tm5CNE8zQmhaR1JwYm1jNk1DQTBjSGc3Wm14bGVEb3dJREFnWVhWMGIzMWNiaU55WTNjdFptTnpZaUF1Y21OM0xXWmpjMkl0WW50bWJHVjRPakFnTUNCaGRYUnZPMjFwYmkxM2FXUjBhRG95TjNCNE8zUmxlSFF0WVd4cFoyNDZZMlZ1ZEdWeU8ySnZjbVJsY2kxeVlXUnBkWE02T0hCNE8zQmhaR1JwYm1jNk0zQjRJRFZ3ZUR0bWIyNTBMWE5wZW1VNk1USndlRHRtYjI1MExYZGxhV2RvZERvNE1EQjlYRzRqY21OM0xXWmpjMklnTG5KamR5MW1ZM05pTFhOMFlYUmxlM0JoWkdScGJtYzZNamh3ZUNBeE5uQjRPM1JsZUhRdFlXeHBaMjQ2WTJWdWRHVnlPMk52Ykc5eU9pTTNNemhCT0VNN1ptOXVkQzF6YVhwbE9qRXpMalZ3ZUgxY2JpTnlZM2N0Wm1OellpQXVjbU4zTFdaamMySXRjM1JoZEdWMGVIUjdiV0Z5WjJsdU9qQWdNQ0F4TW5CNGZWeHVJM0pqZHkxbVkzTmlJQzV5WTNjdFptTnpZaTF6Y0dsdWUyUnBjM0JzWVhrNllteHZZMnM3ZDJsa2RHZzZNakp3ZUR0b1pXbG5hSFE2TWpKd2VEdGliM0prWlhJNk0zQjRJSE52Ykdsa0lDTkZNMFU0UlRnN1ltOXlaR1Z5TFhSdmNDMWpiMnh2Y2pvak1EQkZNRGN3TzJKdmNtUmxjaTF5WVdScGRYTTZOVEFsTzIxaGNtZHBiam93SUdGMWRHOGdNVEJ3ZUR0aGJtbHRZWFJwYjI0NmNtTjNMV1pqYzJJdGMzQnBiaUF1T0hNZ2JHbHVaV0Z5SUdsdVptbHVhWFJsZlZ4dVFHdGxlV1p5WVcxbGN5QnlZM2N0Wm1OellpMXpjR2x1ZTNSdmUzUnlZVzV6Wm05eWJUcHliM1JoZEdVb016WXdaR1ZuS1gxOVhHNGpjbU4zTFdaamMySWdMbkpqZHkxbVkzTmlMVzF2Y21WN2NHRmtaR2x1WnpveE1IQjRPM1JsZUhRdFlXeHBaMjQ2WTJWdWRHVnlPMlp2Ym5RdGMybDZaVG94TVM0MWNIZzdZMjlzYjNJNkl6Y3pPRUU0UTMxY2JpTnlZM2N0Wm1OellpQXVjbU4zTFdaamMySXRhR2x1ZEh0bWIyNTBMWE5wZW1VNk1URXVOWEI0TzJOdmJHOXlPaU0zTXpoQk9FTTdkR1Y0ZEMxaGJHbG5ianBqWlc1MFpYSTdiV0Z5WjJsdU9qRXdjSGdnTUNBd2ZWeHVJM0pqZHkxbVkzTmlJQzV5WTNjdFptTnpZaTFqZEdGN1pHbHpjR3hoZVRwbWJHVjRPMlpzWlhndGQzSmhjRHAzY21Gd08yRnNhV2R1TFdsMFpXMXpPbU5sYm5SbGNqdG5ZWEE2TVRCd2VDQXhNbkI0TzJKaFkydG5jbTkxYm1RNkkyWm1aanRpYjNKa1pYSTZNWEI0SUhOdmJHbGtJQ05GTTBVNFJUZzdZbTl5WkdWeUxYSmhaR2wxY3pveE5uQjRPM0JoWkdScGJtYzZNVFp3ZUR0dFlYSm5hVzR0ZEc5d09qRTJjSGg5WEc0amNtTjNMV1pqYzJJZ0xuSmpkeTFtWTNOaUxXTjBZWFJsZUhSN2JXRnlaMmx1T2pBN1ptOXVkQzF6YVhwbE9qRTBMalZ3ZUR0bWIyNTBMWGRsYVdkb2REbzJNREE3WTI5c2IzSTZJekJFTWpReU5qdG1iR1Y0T2pFZ01TQXhNREFsZlZ4dUkzSmpkeTFtWTNOaUlDNXlZM2N0Wm1OellpMW1iMjkwZTIxaGNtZHBiam94TkhCNElESndlQ0F3TzJadmJuUXRjMmw2WlRveE1TNDFjSGc3WTI5c2IzSTZJemN6T0VFNFF6dHNhVzVsTFdobGFXZG9kRG94TGpVMWZWeHVRRzFsWkdsaElDaHRZWGd0ZDJsa2RHZzZOalF3Y0hncGUxeHVJM0pqZHkxbVkzTmllM0JoWkdScGJtYzZNVEp3ZUgxY2JpTnlZM2N0Wm1OellpQXVjbU4zTFdaamMySXRZbUZ5ZTNSdmNEbzJjSGc3WjJGd09qaHdlRHR3WVdSa2FXNW5Pamh3ZUNBeE1IQjRmVnh1STNKamR5MW1ZM05pSUM1eVkzY3RabU56WWkxemRHRjBjM3R0WVhKbmFXNHRiR1ZtZERwaGRYUnZmVnh1STNKamR5MW1ZM05pSUM1eVkzY3RabU56WWkxemRHRjBlMjFwYmkxM2FXUjBhRG8xTW5CNGZWeHVJM0pqZHkxbVkzTmlJQzV5WTNjdFptTnpZaTFoWTNScGIyNXplMjFoY21kcGJpMXNaV1owT2pBN2QybGtkR2c2TVRBd0pYMWNiaU55WTNjdFptTnpZaUF1Y21OM0xXWmpjMkl0WVdOMGFXOXVjeUF1Y21OM0xXWmpjMkl0WW5SdWUyWnNaWGc2TVNBeElHRjFkRzk5WEc0amNtTjNMV1pqYzJJZ0xuSmpkeTFtWTNOaUxXTmhjbVI3ZDJsa2RHZzZOakp3ZUR0d1lXUmthVzVuT2pad2VDQXpjSGdnTkhCNGZWeHVJM0pqZHkxbVkzTmlJQzV5WTNjdFptTnpZaTFtWVdObGQzSmhjQ3dqY21OM0xXWmpjMklnTG5KamR5MW1ZM05pTFdaaFkyVjdkMmxrZEdnNk16WndlRHRvWldsbmFIUTZNelp3ZUgxY2JpTnlZM2N0Wm1OellpQXVjbU4zTFdaamMySXRjMjVoYldWN2JXRjRMWGRwWkhSb09qVTJjSGc3Wm05dWRDMXphWHBsT2prdU5YQjRmVnh1STNKamR5MW1ZM05pSUM1eVkzY3RabU56WWkxbGJYQjBlV043ZDJsa2RHZzZORFJ3ZUR0b1pXbG5hSFE2TkRSd2VEdG1iMjUwTFhOcGVtVTZNVEF1TlhCNGZWeHVJM0pqZHkxbVkzTmlJQzV5WTNjdFptTnpZaTF2ZG5KN2RHOXdPaTAzY0hnN2JHVm1kRG90T1hCNE8yWnZiblF0YzJsNlpUb3hNSEI0TzIxcGJpMTNhV1IwYURveU1YQjRmVnh1STNKamR5MW1ZM05pSUM1eVkzY3RabU56WWkxamNtVnpkSHQzYVdSMGFEb3hObkI0TzJobGFXZG9kRG94Tm5CNE8zSnBaMmgwT2kwM2NIaDlYRzRqY21OM0xXWmpjMklnTG5KamR5MW1ZM05pTFhObFlYSmphSHRtYjI1MExYTnBlbVU2TVRad2VIMWNiaU55WTNjdFptTnpZaTV5WTNjdFptTnpZaTF2Y0dWdUlDNXlZM2N0Wm1OellpMXdZVzVsYkhkeVlYQjdjRzl6YVhScGIyNDZabWw0WldRN2JHVm1kRG93TzNSdmNEb3dPM0pwWjJoME9qQTdZbTkwZEc5dE9qQTdlaTFwYm1SbGVEbzVPVGs1T1R0bWJHVjRPbTV2Ym1WOVhHNGpjbU4zTFdaamMySWdMbkpqZHkxbVkzTmlMV0poWTJ0a2NtOXdlMlJwYzNCc1lYazZZbXh2WTJzN2NHOXphWFJwYjI0NllXSnpiMngxZEdVN2JHVm1kRG93TzNSdmNEb3dPM0pwWjJoME9qQTdZbTkwZEc5dE9qQTdZM1Z5YzI5eU9uQnZhVzUwWlhKOVhHNGpjbU4zTFdaamMySWdMbkpqZHkxbVkzTmlMWEJoYm1Wc2UzQnZjMmwwYVc5dU9tRmljMjlzZFhSbE8yeGxablE2TUR0eWFXZG9kRG93TzJKdmRIUnZiVG93TzJobGFXZG9kRHBoZFhSdk8yMWhlQzFvWldsbmFIUTZOemgyYUR0aWIzSmtaWEl0Y21Ga2FYVnpPakUyY0hnZ01UWndlQ0F3SURBN1ltOXlaR1Z5TFdKdmRIUnZiVG93ZlZ4dWZWeHVRRzFsWkdsaElDaHdjbVZtWlhKekxYSmxaSFZqWldRdGJXOTBhVzl1T25KbFpIVmpaU2w3WEc0amNtTjNMV1pqYzJJZ0tudDBjbUZ1YzJsMGFXOXVPbTV2Ym1VaGFXMXdiM0owWVc1MGZWeHVJM0pqZHkxbVkzTmlJQzV5WTNjdFptTnpZaTF6Y0dsdWUyRnVhVzFoZEdsdmJqcHViMjVsZlZ4dWZWeHVJanQyWVhJZ1l6MWtiMk4xYldWdWRDNWpkWEp5Wlc1MFUyTnlhWEIwT3loakppWmpMbkJoY21WdWRFNXZaR1UvWXk1d1lYSmxiblJPYjJSbE9tUnZZM1Z0Wlc1MExtaGxZV1FwTG1Gd2NHVnVaRU5vYVd4a0tITXBPMzBwS0NrNyIpLGZ1bmN0aW9uKGMpe3JldHVybiBjLmNoYXJDb2RlQXQoMCl9KSkp\"),function(c){return c.charCodeAt(0)})))<\/script>\n<div class=\"rcw-fcsb-top\">\n<div class=\"rcw-fcsb-title\" role=\"heading\" aria-level=\"3\">FC 27 Squad Builder<\/div>\n<p class=\"rcw-fcsb-sub\">Pick a formation, tap a slot to add players, and chase the perfect XI. Men&#39;s and women&#39;s players welcome in the same squad.<\/p>\n<\/div>\n<div class=\"rcw-fcsb-bar\">\n<span class=\"rcw-fcsb-selwrap\"><select class=\"rcw-fcsb-sel\" aria-label=\"Formation\"><\/select><\/span>\n<div class=\"rcw-fcsb-stats\" aria-live=\"polite\">\n<span class=\"rcw-fcsb-stat\"><span class=\"rcw-fcsb-statv\" data-stat=\"rating\">&mdash;<\/span><span class=\"rcw-fcsb-statl\">Team rating<\/span><\/span>\n<span class=\"rcw-fcsb-stat\"><span class=\"rcw-fcsb-statv\" data-stat=\"chem\">0\/33<\/span><span class=\"rcw-fcsb-statl\">Chemistry (est.)<\/span><\/span>\n<span class=\"rcw-fcsb-stat\"><span class=\"rcw-fcsb-statv\" data-stat=\"count\">0\/11<\/span><span class=\"rcw-fcsb-statl\">Players<\/span><\/span>\n<\/div>\n<div class=\"rcw-fcsb-actions\">\n<button type=\"button\" class=\"rcw-fcsb-btn rcw-fcsb-btn-sec\" data-act=\"reset\">Reset squad<\/button>\n<button type=\"button\" class=\"rcw-fcsb-btn rcw-fcsb-btn-sec\" data-act=\"copy\">Copy squad<\/button>\n<\/div>\n<\/div>\n<div class=\"rcw-fcsb-note\" hidden><\/div>\n<div class=\"rcw-fcsb-stage\">\n<div class=\"rcw-fcsb-pitchcol\">\n<div class=\"rcw-fcsb-pitchbox\">\n<div class=\"rcw-fcsb-pitch\">\n<span class=\"rcw-fcsb-m rcw-fcsb-m-touch\"><\/span>\n<span class=\"rcw-fcsb-m rcw-fcsb-m-half\"><\/span>\n<span class=\"rcw-fcsb-m rcw-fcsb-m-cc\"><\/span>\n<span class=\"rcw-fcsb-dot\" style=\"left:50%;top:50%\"><\/span>\n<span class=\"rcw-fcsb-m rcw-fcsb-m-boxt\"><\/span>\n<span class=\"rcw-fcsb-m rcw-fcsb-m-goalt\"><\/span>\n<span class=\"rcw-fcsb-dot\" style=\"left:50%;top:12%\"><\/span>\n<span class=\"rcw-fcsb-m rcw-fcsb-m-boxb\"><\/span>\n<span class=\"rcw-fcsb-m rcw-fcsb-m-goalb\"><\/span>\n<span class=\"rcw-fcsb-dot\" style=\"left:50%;top:88%\"><\/span>\n<div class=\"rcw-fcsb-slots\"><\/div>\n<\/div>\n<\/div>\n<\/div>\n<div class=\"rcw-fcsb-panelwrap\">\n<div class=\"rcw-fcsb-backdrop\" aria-hidden=\"true\"><\/div>\n<aside class=\"rcw-fcsb-panel\" role=\"dialog\" aria-label=\"Player picker\">\n<div class=\"rcw-fcsb-phead\">\n<p class=\"rcw-fcsb-ptitle\">Pick a player<\/p>\n<button type=\"button\" class=\"rcw-fcsb-rem\" hidden>Remove<\/button>\n<button type=\"button\" class=\"rcw-fcsb-x\" aria-label=\"Close player picker\">&times;<\/button>\n<\/div>\n<div class=\"rcw-fcsb-pctl\">\n<input class=\"rcw-fcsb-search\" type=\"search\" placeholder=\"Search players&hellip;\" aria-label=\"Search players\" autocomplete=\"off\">\n<button type=\"button\" class=\"rcw-fcsb-tog\" aria-pressed=\"false\">All positions<\/button>\n<\/div>\n<div class=\"rcw-fcsb-plist\"><\/div>\n<\/aside>\n<\/div>\n<\/div>\n<p class=\"rcw-fcsb-hint\">Amber dot = out of position (0 chemistry). Chemistry is a simplified estimate from club, league and nation links.<\/p>\n<div class=\"rcw-fcsb-cta\">\n<p class=\"rcw-fcsb-ctatext\">Building the dream squad in Ultimate Team? FC Points top-ups start with a gift card:<\/p>\n<a class=\"rcw-fcsb-btn rcw-fcsb-btn-pri rcw-fcsb-btn-lg\" href=\"https:\/\/www.recharge.com\/en\/gb\/playstation-store\" rel=\"noopener\">PlayStation Store<\/a>\n<a class=\"rcw-fcsb-btn rcw-fcsb-btn-sec rcw-fcsb-btn-lg\" href=\"https:\/\/www.recharge.com\/en\/gb\/xbox-gift-card\" rel=\"noopener\">Xbox Gift Card<\/a>\n<\/div>\n<p class=\"rcw-fcsb-foot\">Unofficial fan tool by Recharge.com &mdash; not affiliated with or endorsed by EA SPORTS. Player data: EA SPORTS FC public ratings &middot; updated <span class=\"rcw-fcsb-upd\"><\/span> &middot; switches to FC 27 automatically when EA reveals the new ratings.<\/p>\n<script>eval(new TextDecoder().decode(Uint8Array.from(atob(\"CihmdW5jdGlvbiAoKSB7CiAgJ3VzZSBzdHJpY3QnOwoKdmFyIFJDV19TUkMgPSB7CiAgdG9wOiBbCiAgICAnaHR0cHM6Ly9jcmVhdGl2ZWdyb3VwLWJsb2ctcHJkLWV1LXdlc3QtMS1yZWNoYXJnZS1ibG9nLnMzLmV1LXdlc3QtMS5hbWF6b25hd3MuY29tL2Jsb2cvd3AtY29udGVudC91cGxvYWRzLzIwMjYvMDkvMDMxMjE5MjIvcmN3LWZjLXRvcC1wMS0yLnR4dCcsCiAgICAnaHR0cHM6Ly9jcmVhdGl2ZWdyb3VwLWJsb2ctcHJkLWV1LXdlc3QtMS1yZWNoYXJnZS1ibG9nLnMzLmV1LXdlc3QtMS5hbWF6b25hd3MuY29tL2Jsb2cvd3AtY29udGVudC91cGxvYWRzLzIwMjYvMDkvMDMxMjE5MjUvcmN3LWZjLXRvcC1wMi0yLnR4dCcKICBdLAogIHJlc3Q6IFsKICAgICdodHRwczovL2NyZWF0aXZlZ3JvdXAtYmxvZy1wcmQtZXUtd2VzdC0xLXJlY2hhcmdlLWJsb2cuczMuZXUtd2VzdC0xLmFtYXpvbmF3cy5jb20vYmxvZy93cC1jb250ZW50L3VwbG9hZHMvMjAyNi8wOS8wMzEyMTkyNy9yY3ctZmMtcmVzdC1wMS0yLnR4dCcsCiAgICAnaHR0cHM6Ly9jcmVhdGl2ZWdyb3VwLWJsb2ctcHJkLWV1LXdlc3QtMS1yZWNoYXJnZS1ibG9nLnMzLmV1LXdlc3QtMS5hbWF6b25hd3MuY29tL2Jsb2cvd3AtY29udGVudC91cGxvYWRzLzIwMjYvMDkvMDMxMjE5MzEvcmN3LWZjLXJlc3QtcDItMi50eHQnLAogICAgJ2h0dHBzOi8vY3JlYXRpdmVncm91cC1ibG9nLXByZC1ldS13ZXN0LTEtcmVjaGFyZ2UtYmxvZy5zMy5ldS13ZXN0LTEuYW1hem9uYXdzLmNvbS9ibG9nL3dwLWNvbnRlbnQvdXBsb2Fkcy8yMDI2LzA5LzAzMTIxOTMzL3Jjdy1mYy1yZXN0LXAzLTIudHh0JywKICAgICdodHRwczovL2NyZWF0aXZlZ3JvdXAtYmxvZy1wcmQtZXUtd2VzdC0xLXJlY2hhcmdlLWJsb2cuczMuZXUtd2VzdC0xLmFtYXpvbmF3cy5jb20vYmxvZy93cC1jb250ZW50L3VwbG9hZHMvMjAyNi8wOS8wMzEyMTkzNi9yY3ctZmMtcmVzdC1wNC0yLnR4dCcsCiAgICAnaHR0cHM6Ly9jcmVhdGl2ZWdyb3VwLWJsb2ctcHJkLWV1LXdlc3QtMS1yZWNoYXJnZS1ibG9nLnMzLmV1LXdlc3QtMS5hbWF6b25hd3MuY29tL2Jsb2cvd3AtY29udGVudC91cGxvYWRzLzIwMjYvMDkvMDMxMjE5MzgvcmN3LWZjLXJlc3QtcDUtMi50eHQnLAogICAgJ2h0dHBzOi8vY3JlYXRpdmVncm91cC1ibG9nLXByZC1ldS13ZXN0LTEtcmVjaGFyZ2UtYmxvZy5zMy5ldS13ZXN0LTEuYW1hem9uYXdzLmNvbS9ibG9nL3dwLWNvbnRlbnQvdXBsb2Fkcy8yMDI2LzA5LzAzMTIxOTQwL3Jjdy1mYy1yZXN0LXA2LTIudHh0JywKICAgICdodHRwczovL2NyZWF0aXZlZ3JvdXAtYmxvZy1wcmQtZXUtd2VzdC0xLXJlY2hhcmdlLWJsb2cuczMuZXUtd2VzdC0xLmFtYXpvbmF3cy5jb20vYmxvZy93cC1jb250ZW50L3VwbG9hZHMvMjAyNi8wOS8wMzEyMTk0Mi9yY3ctZmMtcmVzdC1wNy0yLnR4dCcsCiAgICAnaHR0cHM6Ly9jcmVhdGl2ZWdyb3VwLWJsb2ctcHJkLWV1LXdlc3QtMS1yZWNoYXJnZS1ibG9nLnMzLmV1LXdlc3QtMS5hbWF6b25hd3MuY29tL2Jsb2cvd3AtY29udGVudC91cGxvYWRzLzIwMjYvMDkvMDMxMjE5NDUvcmN3LWZjLXJlc3QtcDgtMi50eHQnLAogICAgJ2h0dHBzOi8vY3JlYXRpdmVncm91cC1ibG9nLXByZC1ldS13ZXN0LTEtcmVjaGFyZ2UtYmxvZy5zMy5ldS13ZXN0LTEuYW1hem9uYXdzLmNvbS9ibG9nL3dwLWNvbnRlbnQvdXBsb2Fkcy8yMDI2LzA5LzAzMTIxOTQ3L3Jjdy1mYy1yZXN0LXA5LTIudHh0JywKICAgICdodHRwczovL2NyZWF0aXZlZ3JvdXAtYmxvZy1wcmQtZXUtd2VzdC0xLXJlY2hhcmdlLWJsb2cuczMuZXUtd2VzdC0xLmFtYXpvbmF3cy5jb20vYmxvZy93cC1jb250ZW50L3VwbG9hZHMvMjAyNi8wOS8wMzEyMTk0OS9yY3ctZmMtcmVzdC1wMTAtMS50eHQnLAogICAgJ2h0dHBzOi8vY3JlYXRpdmVncm91cC1ibG9nLXByZC1ldS13ZXN0LTEtcmVjaGFyZ2UtYmxvZy5zMy5ldS13ZXN0LTEuYW1hem9uYXdzLmNvbS9ibG9nL3dwLWNvbnRlbnQvdXBsb2Fkcy8yMDI2LzA5LzAzMTIxOTUyL3Jjdy1mYy1yZXN0LXAxMS0xLnR4dCcKICBdLAogIG1vdmVyczogJ2h0dHBzOi8vY3JlYXRpdmVncm91cC1ibG9nLXByZC1ldS13ZXN0LTEtcmVjaGFyZ2UtYmxvZy5zMy5ldS13ZXN0LTEuYW1hem9uYXdzLmNvbS9ibG9nL3dwLWNvbnRlbnQvdXBsb2Fkcy8yMDI2LzA5LzAzMTIyMDEyL3Jjdy1mYy1tb3ZlcnMtMi50eHQnCn07CmZ1bmN0aW9uIHJjd0ZldGNoSnNvbih1cmwpewogIHJldHVybiBmZXRjaCh1cmwpLnRoZW4oZnVuY3Rpb24ocil7CiAgICBpZiAoIXIub2spIHRocm93IG5ldyBFcnJvcignSFRUUCAnICsgci5zdGF0dXMpOwogICAgcmV0dXJuIHIudGV4dCgpOwogIH0pLnRoZW4oZnVuY3Rpb24odCl7IHJldHVybiBKU09OLnBhcnNlKHQuc2xpY2UodC5pbmRleE9mKCdcbicpICsgMSkpOyB9KTsKfQpmdW5jdGlvbiByY3dMb2FkU2V0KHVybHMpewogIHJldHVybiBQcm9taXNlLmFsbCh1cmxzLm1hcChyY3dGZXRjaEpzb24pKS50aGVuKGZ1bmN0aW9uKHBhcnRzKXsKICAgIHZhciBvdXQgPSBwYXJ0c1swXTsKICAgIGZvciAodmFyIGkgPSAxOyBpIDwgcGFydHMubGVuZ3RoOyBpKyspewogICAgICBvdXQucGxheWVycyA9IG91dC5wbGF5ZXJzLmNvbmNhdChwYXJ0c1tpXS5wbGF5ZXJzKTsKICAgICAgT2JqZWN0LmFzc2lnbihvdXQuY2x1YnMsIHBhcnRzW2ldLmNsdWJzKTsKICAgICAgT2JqZWN0LmFzc2lnbihvdXQubmF0aW9ucywgcGFydHNbaV0ubmF0aW9ucyk7CiAgICB9CiAgICByZXR1cm4gb3V0OwogIH0pOwp9CgogIC8qIC0tLS0gZm9ybWF0aW9uIGNvb3JkaW5hdGUgbWFwOiBbcm9sZSwgeCUsIHklXSDigJQgR0sgYXQgdGhlIGJvdHRvbSAtLS0tICovCiAgdmFyIEZPUk1BVElPTlMgPSB7CiAgICAnNC0zLTMnOiBbWydMVycsMTgsMTRdLFsnU1QnLDUwLDEwXSxbJ1JXJyw4MiwxNF0sWydDTScsMjYsMzhdLFsnQ00nLDUwLDMyXSxbJ0NNJyw3NCwzOF0sWydMQicsMTMsNjJdLFsnQ0InLDM3LDY3XSxbJ0NCJyw2Myw2N10sWydSQicsODcsNjJdLFsnR0snLDUwLDg3XV0sCiAgICAnNC00LTInOiBbWydTVCcsMzUsMTBdLFsnU1QnLDY1LDEwXSxbJ0xNJywxMywzNl0sWydDTScsMzgsNDBdLFsnQ00nLDYyLDQwXSxbJ1JNJyw4NywzNl0sWydMQicsMTMsNjNdLFsnQ0InLDM3LDY3XSxbJ0NCJyw2Myw2N10sWydSQicsODcsNjNdLFsnR0snLDUwLDg3XV0sCiAgICAnNC0yLTMtMSc6IFtbJ1NUJyw1MCwxMF0sWydDQU0nLDIwLDI2XSxbJ0NBTScsNTAsMjNdLFsnQ0FNJyw4MCwyNl0sWydDRE0nLDM1LDQ1XSxbJ0NETScsNjUsNDVdLFsnTEInLDEzLDY0XSxbJ0NCJywzNyw2OF0sWydDQicsNjMsNjhdLFsnUkInLDg3LDY0XSxbJ0dLJyw1MCw4N11dLAogICAgJzQtMy0yLTEnOiBbWydTVCcsNTAsOV0sWydDQU0nLDM0LDI0XSxbJ0NBTScsNjYsMjRdLFsnQ00nLDI2LDQ0XSxbJ0NNJyw1MCw0MF0sWydDTScsNzQsNDRdLFsnTEInLDEzLDY0XSxbJ0NCJywzNyw2OF0sWydDQicsNjMsNjhdLFsnUkInLDg3LDY0XSxbJ0dLJyw1MCw4N11dLAogICAgJzQtMS0yLTEtMic6IFtbJ1NUJywzOCwxMF0sWydTVCcsNjIsMTBdLFsnQ0FNJyw1MCwyNl0sWydMTScsMTUsNDBdLFsnUk0nLDg1LDQwXSxbJ0NETScsNTAsNTBdLFsnTEInLDEzLDY0XSxbJ0NCJywzNyw2OF0sWydDQicsNjMsNjhdLFsnUkInLDg3LDY0XSxbJ0dLJyw1MCw4N11dLAogICAgJzQtMi0yLTInOiBbWydTVCcsMzgsMTFdLFsnU1QnLDYyLDExXSxbJ0NBTScsMjYsMjldLFsnQ0FNJyw3NCwyOV0sWydDRE0nLDM2LDQ4XSxbJ0NETScsNjQsNDhdLFsnTEInLDEzLDY0XSxbJ0NCJywzNyw2OF0sWydDQicsNjMsNjhdLFsnUkInLDg3LDY0XSxbJ0dLJyw1MCw4N11dLAogICAgJzQtNC0xLTEnOiBbWydTVCcsNTAsOV0sWydDQU0nLDUwLDI1XSxbJ0xNJywxMyw0MF0sWydDTScsMzgsNDRdLFsnQ00nLDYyLDQ0XSxbJ1JNJyw4Nyw0MF0sWydMQicsMTMsNjRdLFsnQ0InLDM3LDY4XSxbJ0NCJyw2Myw2OF0sWydSQicsODcsNjRdLFsnR0snLDUwLDg3XV0sCiAgICAnNC01LTEnOiBbWydTVCcsNTAsMTBdLFsnTE0nLDEyLDM2XSxbJ0NNJywzNCw0Ml0sWydDQU0nLDUwLDMyXSxbJ0NNJyw2Niw0Ml0sWydSTScsODgsMzZdLFsnTEInLDEzLDY0XSxbJ0NCJywzNyw2OF0sWydDQicsNjMsNjhdLFsnUkInLDg3LDY0XSxbJ0dLJyw1MCw4N11dLAogICAgJzMtNC0zJzogW1snTFcnLDIwLDEzXSxbJ1NUJyw1MCwxMF0sWydSVycsODAsMTNdLFsnTE0nLDE0LDQwXSxbJ0NNJywzOCw0Ml0sWydDTScsNjIsNDJdLFsnUk0nLDg2LDQwXSxbJ0NCJywyNiw2OF0sWydDQicsNTAsNzFdLFsnQ0InLDc0LDY4XSxbJ0dLJyw1MCw4N11dLAogICAgJzMtNC0yLTEnOiBbWydTVCcsNTAsOV0sWydDQU0nLDM0LDI1XSxbJ0NBTScsNjYsMjVdLFsnTE0nLDEzLDQyXSxbJ0NNJywzOCw0NV0sWydDTScsNjIsNDVdLFsnUk0nLDg3LDQyXSxbJ0NCJywyNiw2OF0sWydDQicsNTAsNzFdLFsnQ0InLDc0LDY4XSxbJ0dLJyw1MCw4N11dLAogICAgJzMtNS0yJzogW1snU1QnLDM1LDEwXSxbJ1NUJyw2NSwxMF0sWydDQU0nLDUwLDI1XSxbJ0xNJywxMiw0MF0sWydDTScsMzIsNDRdLFsnQ00nLDY4LDQ0XSxbJ1JNJyw4OCw0MF0sWydDQicsMjYsNjddLFsnQ0InLDUwLDcwXSxbJ0NCJyw3NCw2N10sWydHSycsNTAsODddXSwKICAgICc1LTMtMic6IFtbJ1NUJywzNSwxMF0sWydTVCcsNjUsMTBdLFsnQ00nLDI3LDMzXSxbJ0NNJyw1MCwyOV0sWydDTScsNzMsMzNdLFsnTFdCJywxMiw1Ml0sWydDQicsMjgsNjhdLFsnQ0InLDUwLDcxXSxbJ0NCJyw3Miw2OF0sWydSV0InLDg4LDUyXSxbJ0dLJyw1MCw4N11dLAogICAgJzUtMi0xLTInOiBbWydTVCcsMzgsMTBdLFsnU1QnLDYyLDEwXSxbJ0NBTScsNTAsMjddLFsnQ00nLDM0LDQ0XSxbJ0NNJyw2Niw0NF0sWydMV0InLDEyLDU0XSxbJ0NCJywyOCw2OF0sWydDQicsNTAsNzFdLFsnQ0InLDcyLDY4XSxbJ1JXQicsODgsNTRdLFsnR0snLDUwLDg3XV0KICB9OwogIC8qIFRoZSBkYXRhc2V0IGhhcyBubyBMV0IvUldCIHBvc2l0aW9uIGNvZGVzLCBzbyB3aW5nLWJhY2sgc2xvdHMgYWNjZXB0IGZ1bGwtYmFja3M7CiAgICAgbGlrZXdpc2UgQ0YvU1MgbWFwIHRvIFNULCBhbmQgd2lkZSBtaWRzIGFjY2VwdCB3aW5nZXJzIHdoZXJlIHNlbnNpYmxlLiAqLwogIHZhciBDT01QQVQgPSB7ICdMV0InOiBbJ0xXQicsJ0xCJ10sICdSV0InOiBbJ1JXQicsJ1JCJ10gfTsKICBmdW5jdGlvbiBjb2Rlc0Zvcihyb2xlKXsgcmV0dXJuIENPTVBBVFtyb2xlXSB8fCBbcm9sZV07IH0KCiAgZnVuY3Rpb24gbm9ybShzKXsKICAgIHMgPSBTdHJpbmcocyA9PSBudWxsID8gJycgOiBzKS50b0xvd2VyQ2FzZSgpOwogICAgdHJ5IHsgcyA9IHMubm9ybWFsaXplKCdORkQnKS5yZXBsYWNlKC9bXHUwMzAwLVx1MDM2Zl0vZywgJycpOyB9IGNhdGNoIChlKSB7fQogICAgcmV0dXJuIHMucmVwbGFjZSgvW15hLXowLTldL2csICcnKTsKICB9CiAgZnVuY3Rpb24gc2hvcnROYW1lKG4pewogICAgdmFyIHQgPSBTdHJpbmcobiA9PSBudWxsID8gJycgOiBuKS50cmltKCkuc3BsaXQoL1xzKy8pOwogICAgaWYgKHQubGVuZ3RoIDwgMikgcmV0dXJuIHRbMF0gfHwgJyc7CiAgICB2YXIgbGFzdCA9IHRbdC5sZW5ndGggLSAxXTsKICAgIGlmICgvXihqclwuP3xzclwuP3xqdW5pb3J8ZmlsaG98bmV0b3xqbnJ8aWl8aWlpfGl2KSQvaS50ZXN0KGxhc3QpKXsKICAgICAgaWYgKHQubGVuZ3RoID09PSAyKSByZXR1cm4gdC5qb2luKCcgJyk7CiAgICAgIHJldHVybiB0W3QubGVuZ3RoIC0gMl0gKyAnICcgKyBsYXN0OwogICAgfQogICAgcmV0dXJuIGxhc3Q7CiAgfQogIGZ1bmN0aW9uIGluaXRpYWxzKG4pewogICAgdmFyIHQgPSBTdHJpbmcobiA9PSBudWxsID8gJycgOiBuKS50cmltKCkuc3BsaXQoL1xzKy8pOwogICAgdmFyIHMgPSAodFswXSA\/IHRbMF0uY2hhckF0KDApIDogJycpICsgKHQubGVuZ3RoID4gMSA\/IHRbdC5sZW5ndGggLSAxXS5jaGFyQXQoMCkgOiAnJyk7CiAgICByZXR1cm4gcy50b1VwcGVyQ2FzZSgpOwogIH0KICBmdW5jdGlvbiBpblBvcyhwLCByb2xlKXsKICAgIHZhciBjb2RlcyA9IGNvZGVzRm9yKHJvbGUpLCBpOwogICAgZm9yIChpID0gMDsgaSA8IGNvZGVzLmxlbmd0aDsgaSsrKXsKICAgICAgaWYgKHAucCA9PT0gY29kZXNbaV0pIHJldHVybiB0cnVlOwogICAgICBpZiAocC5hcCAmJiBwLmFwLmluZGV4T2YoY29kZXNbaV0pICE9PSAtMSkgcmV0dXJuIHRydWU7CiAgICB9CiAgICByZXR1cm4gZmFsc2U7CiAgfQogIC8qIENoZW1pc3RyeSAoZXN0Lik6IHBlciBwbGF5ZXIgMC0zLiBPdXQgb2YgcG9zaXRpb24gPSAwLiBPdGhlcndpc2UKICAgICBjbHViIGxpbmtzIDIvNC83IC0+ICsxLysyLyszLCBuYXRpb24gMi81LzgsIGxlYWd1ZSAzLzUvOCwgY2FwcGVkIGF0IDMuCiAgICAgTnVsbCBjbHVicyAodW5saWNlbnNlZCkgbmV2ZXIgY291bnQgYXMgYSBzaGFyZWQgY2x1Yi4gKi8KICBmdW5jdGlvbiBjb21wdXRlQ2hlbShlbnRyaWVzKXsKICAgIHZhciBjbHVicyA9IHt9LCBuYXRzID0ge30sIGxncyA9IHt9LCBpLCBlLCBjaywgbmssIGxrOwogICAgZm9yIChpID0gMDsgaSA8IGVudHJpZXMubGVuZ3RoOyBpKyspewogICAgICBlID0gZW50cmllc1tpXTsKICAgICAgY2sgPSAoZS5wLmMgPT09IG51bGwgfHwgZS5wLmMgPT09IHVuZGVmaW5lZCkgPyBudWxsIDogU3RyaW5nKGUucC5jKTsKICAgICAgbmsgPSAoZS5wLm50ID09PSBudWxsIHx8IGUucC5udCA9PT0gdW5kZWZpbmVkKSA\/IG51bGwgOiBTdHJpbmcoZS5wLm50KTsKICAgICAgbGsgPSBlLnAubGcgPyBTdHJpbmcoZS5wLmxnKSA6IG51bGw7CiAgICAgIGlmIChjayAhPT0gbnVsbCkgY2x1YnNbY2tdID0gKGNsdWJzW2NrXSB8fCAwKSArIDE7CiAgICAgIGlmIChuayAhPT0gbnVsbCkgbmF0c1tua10gPSAobmF0c1tua10gfHwgMCkgKyAxOwogICAgICBpZiAobGsgIT09IG51bGwpIGxnc1tsa10gPSAobGdzW2xrXSB8fCAwKSArIDE7CiAgICB9CiAgICBmdW5jdGlvbiBwdHMobiwgYSwgYiwgYyl7IHJldHVybiBuID49IGMgPyAzIDogbiA+PSBiID8gMiA6IG4gPj0gYSA\/IDEgOiAwOyB9CiAgICB2YXIgcGVyID0gW10sIG9vcCA9IFtdLCB0ZWFtID0gMCwgb3ZyID0gMCwgY2g7CiAgICBmb3IgKGkgPSAwOyBpIDwgZW50cmllcy5sZW5ndGg7IGkrKyl7CiAgICAgIGUgPSBlbnRyaWVzW2ldOwogICAgICBvdnIgKz0gZS5wLm87CiAgICAgIGlmICghaW5Qb3MoZS5wLCBlLnJvbGUpKXsgcGVyLnB1c2goMCk7IG9vcC5wdXNoKHRydWUpOyBjb250aW51ZTsgfQogICAgICBjayA9IChlLnAuYyA9PT0gbnVsbCB8fCBlLnAuYyA9PT0gdW5kZWZpbmVkKSA\/IG51bGwgOiBTdHJpbmcoZS5wLmMpOwogICAgICBuayA9IChlLnAubnQgPT09IG51bGwgfHwgZS5wLm50ID09PSB1bmRlZmluZWQpID8gbnVsbCA6IFN0cmluZyhlLnAubnQpOwogICAgICBsayA9IGUucC5sZyA\/IFN0cmluZyhlLnAubGcpIDogbnVsbDsKICAgICAgY2ggPSAoY2sgIT09IG51bGwgPyBwdHMoY2x1YnNbY2tdLCAyLCA0LCA3KSA6IDApICsKICAgICAgICAgICAobmsgIT09IG51bGwgPyBwdHMobmF0c1tua10sIDIsIDUsIDgpIDogMCkgKwogICAgICAgICAgIChsayAhPT0gbnVsbCA\/IHB0cyhsZ3NbbGtdLCAzLCA1LCA4KSA6IDApOwogICAgICBpZiAoY2ggPiAzKSBjaCA9IDM7CiAgICAgIHBlci5wdXNoKGNoKTsgb29wLnB1c2goZmFsc2UpOyB0ZWFtICs9IGNoOwogICAgfQogICAgaWYgKHRlYW0gPiAzMykgdGVhbSA9IDMzOwogICAgcmV0dXJuIHsgcGVyOiBwZXIsIG9vcDogb29wLCB0ZWFtOiB0ZWFtLCBhdmc6IGVudHJpZXMubGVuZ3RoID8gb3ZyIC8gZW50cmllcy5sZW5ndGggOiAwIH07CiAgfQogIC8qIFN1Z2dlc3Rpb24gcG9vbDogZXhhY3QgcHJpbWFyeS1wb3NpdGlvbiBtYXRjaGVzIGZpcnN0LCB0aGVuIGFsdC1wb3NpdGlvbgogICAgIG1hdGNoZXMsIGJvdGgga2VwdCBpbiBPVlIgb3JkZXI7ICJhbGwiIHdpZGVucyB0byBldmVyeSBwbGF5ZXIgaW4gdGhlIHRvcCBzZXQuICovCiAgZnVuY3Rpb24gcG9vbEZvcihwbGF5ZXJzLCByb2xlLCBhbGwsIHEpewogICAgdmFyIEEgPSBbXSwgQiA9IFtdLCBpLCBwLCBjb2RlcyA9IGNvZGVzRm9yKHJvbGUpOwogICAgZm9yIChpID0gMDsgaSA8IHBsYXllcnMubGVuZ3RoOyBpKyspewogICAgICBwID0gcGxheWVyc1tpXTsKICAgICAgaWYgKHEgJiYgcC5fcy5pbmRleE9mKHEpID09PSAtMSkgY29udGludWU7CiAgICAgIGlmIChhbGwpeyBBLnB1c2gocCk7IGNvbnRpbnVlOyB9CiAgICAgIGlmIChjb2Rlcy5pbmRleE9mKHAucCkgIT09IC0xKXsgQS5wdXNoKHApOyBjb250aW51ZTsgfQogICAgICB2YXIgaiwgaGl0ID0gZmFsc2U7CiAgICAgIGlmIChwLmFwKXsgZm9yIChqID0gMDsgaiA8IGNvZGVzLmxlbmd0aDsgaisrKXsgaWYgKHAuYXAuaW5kZXhPZihjb2Rlc1tqXSkgIT09IC0xKXsgaGl0ID0gdHJ1ZTsgYnJlYWs7IH0gfSB9CiAgICAgIGlmIChoaXQpIEIucHVzaChwKTsKICAgIH0KICAgIHJldHVybiBBLmNvbmNhdChCKTsKICB9CiAgZnVuY3Rpb24gdGllckNsYXNzKG8pewogICAgcmV0dXJuIG8gPj0gODcgPyAncmN3LWZjc2ItdDEnIDogbyA+PSA4MiA\/ICdyY3ctZmNzYi10MicgOiBvID49IDc1ID8gJ3Jjdy1mY3NiLXQzJyA6IG8gPj0gNjUgPyAncmN3LWZjc2ItdDQnIDogJ3Jjdy1mY3NiLXQ1JzsKICB9CgogIC8qIC0tLS0gbm9kZSB0ZXN0IGhvb2sgKG5vIHdpbmRvdyA9IHRlc3QgcnVubmVyKSAtLS0tICovCiAgaWYgKHR5cGVvZiB3aW5kb3cgPT09ICd1bmRlZmluZWQnKXsKICAgIGlmICh0eXBlb2YgbW9kdWxlICE9PSAndW5kZWZpbmVkJyAmJiBtb2R1bGUuZXhwb3J0cyl7CiAgICAgIG1vZHVsZS5leHBvcnRzID0geyBSQ1dfU1JDOiBSQ1dfU1JDLCByY3dGZXRjaEpzb246IHJjd0ZldGNoSnNvbiwgcmN3TG9hZFNldDogcmN3TG9hZFNldCwKICAgICAgICBGT1JNQVRJT05TOiBGT1JNQVRJT05TLCBDT01QQVQ6IENPTVBBVCwgbm9ybTogbm9ybSwgc2hvcnROYW1lOiBzaG9ydE5hbWUsIGluaXRpYWxzOiBpbml0aWFscywKICAgICAgICBpblBvczogaW5Qb3MsIGNvbXB1dGVDaGVtOiBjb21wdXRlQ2hlbSwgcG9vbEZvcjogcG9vbEZvciwgdGllckNsYXNzOiB0aWVyQ2xhc3MgfTsKICAgIH0KICAgIHJldHVybjsKICB9CgogIHZhciByb290ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Jjdy1mY3NiJyk7CiAgaWYgKCFyb290KSByZXR1cm47CgogIHZhciBzdGF0ZSA9IHsKICAgIGZvcm1hdGlvbjogJzQtMy0zJywKICAgIHNsb3RzOiBbXSwKICAgIGRhdGE6IG51bGwsCiAgICBieUlkOiB7fSwKICAgIGxvYWRpbmc6IGZhbHNlLAogICAgbG9hZEVycm9yOiBmYWxzZSwKICAgIHBlbmRpbmc6IG51bGwsCiAgICBwaWNrSW5kZXg6IC0xLAogICAgYWxsUG9zOiBmYWxzZSwKICAgIHF1ZXJ5OiAnJwogIH07CgogIGZ1bmN0aW9uIHEoc2VsKXsgcmV0dXJuIHJvb3QucXVlcnlTZWxlY3RvcihzZWwpOyB9CiAgdmFyIHNlbEVsID0gcSgnLnJjdy1mY3NiLXNlbCcpLCBzbG90c0VsID0gcSgnLnJjdy1mY3NiLXNsb3RzJyksIG5vdGVFbCA9IHEoJy5yY3ctZmNzYi1ub3RlJyksCiAgICAgIHN0YXRSID0gcSgnW2RhdGEtc3RhdD0icmF0aW5nIl0nKSwgc3RhdEMgPSBxKCdbZGF0YS1zdGF0PSJjaGVtIl0nKSwgc3RhdE4gPSBxKCdbZGF0YS1zdGF0PSJjb3VudCJdJyksCiAgICAgIHJlc2V0QnRuID0gcSgnW2RhdGEtYWN0PSJyZXNldCJdJyksIGNvcHlCdG4gPSBxKCdbZGF0YS1hY3Q9ImNvcHkiXScpLAogICAgICBwYW5lbFRpdGxlID0gcSgnLnJjdy1mY3NiLXB0aXRsZScpLCByZW1vdmVCdG4gPSBxKCcucmN3LWZjc2ItcmVtJyksIGNsb3NlQnRuID0gcSgnLnJjdy1mY3NiLXgnKSwKICAgICAgc2VhcmNoRWwgPSBxKCcucmN3LWZjc2Itc2VhcmNoJyksIHRvZ0VsID0gcSgnLnJjdy1mY3NiLXRvZycpLCBsaXN0RWwgPSBxKCcucmN3LWZjc2ItcGxpc3QnKSwKICAgICAgYmFja2Ryb3AgPSBxKCcucmN3LWZjc2ItYmFja2Ryb3AnKSwgdXBkRWwgPSBxKCcucmN3LWZjc2ItdXBkJyk7CgogIC8vIHBvcHVsYXRlIHRoZSBmb3JtYXRpb24gZHJvcGRvd24gZnJvbSBGT1JNQVRJT05TIChrZWVwcyBvcHRpb25zIGluIHN5bmMgd2l0aCBjb29yZHMpCiAgKGZ1bmN0aW9uKCl7CiAgICB2YXIgZnJhZyA9IGRvY3VtZW50LmNyZWF0ZURvY3VtZW50RnJhZ21lbnQoKTsKICAgIGZvciAodmFyIG5hbWUgaW4gRk9STUFUSU9OUykgewogICAgICBpZiAoIUZPUk1BVElPTlMuaGFzT3duUHJvcGVydHkobmFtZSkpIGNvbnRpbnVlOwogICAgICB2YXIgbyA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ29wdGlvbicpOwogICAgICBvLnZhbHVlID0gbmFtZTsgby50ZXh0Q29udGVudCA9IG5hbWU7CiAgICAgIGZyYWcuYXBwZW5kQ2hpbGQobyk7CiAgICB9CiAgICBzZWxFbC5hcHBlbmRDaGlsZChmcmFnKTsKICB9KSgpOwoKICB2YXIgQVZDT0xPUlMgPSBbJyMwMDM3M0QnLCAnIzFFOENCRScsICcjMEY3NjZFJywgJyM3QzVDRDYnLCAnI0I0NTUyRCcsICcjNUE2QjZEJ107CgogIGZ1bmN0aW9uIGJ1aWxkU2xvdHMoZil7CiAgICB2YXIgZGVmID0gRk9STUFUSU9OU1tmXSwgb3V0ID0gW10sIGk7CiAgICBmb3IgKGkgPSAwOyBpIDwgZGVmLmxlbmd0aDsgaSsrKSBvdXQucHVzaCh7IHJvbGU6IGRlZltpXVswXSwgeDogZGVmW2ldWzFdLCB5OiBkZWZbaV1bMl0sIHBsYXllcjogbnVsbCB9KTsKICAgIHJldHVybiBvdXQ7CiAgfQoKICBmdW5jdGlvbiBzYXZlKCl7CiAgICBpZiAoc3RhdGUucGVuZGluZykgcmV0dXJuOyAvKiBkb24ndCBjbG9iYmVyIGEgc2F2ZWQgc3F1YWQgd2UgaGF2ZW4ndCByZXN0b3JlZCB5ZXQgKi8KICAgIHRyeSB7CiAgICAgIHZhciBpZHMgPSBbXSwgaTsKICAgICAgZm9yIChpID0gMDsgaSA8IHN0YXRlLnNsb3RzLmxlbmd0aDsgaSsrKSBpZHMucHVzaChzdGF0ZS5zbG90c1tpXS5wbGF5ZXIgPyBzdGF0ZS5zbG90c1tpXS5wbGF5ZXIuaWQgOiAwKTsKICAgICAgbG9jYWxTdG9yYWdlLnNldEl0ZW0oJ3Jjdy1mY3NiJywgSlNPTi5zdHJpbmdpZnkoeyB2OiAxLCBmOiBzdGF0ZS5mb3JtYXRpb24sIGlkczogaWRzIH0pKTsKICAgIH0gY2F0Y2ggKGUpIHt9CiAgfQogIGZ1bmN0aW9uIHJlc3RvcmUoKXsKICAgIHZhciByYXcgPSBudWxsLCBvYmogPSBudWxsOwogICAgdHJ5IHsgcmF3ID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0oJ3Jjdy1mY3NiJyk7IH0gY2F0Y2ggKGUpIHt9CiAgICBpZiAoIXJhdykgcmV0dXJuOwogICAgdHJ5IHsgb2JqID0gSlNPTi5wYXJzZShyYXcpOyB9IGNhdGNoIChlKSB7IHJldHVybjsgfQogICAgaWYgKCFvYmogfHwgIUZPUk1BVElPTlNbb2JqLmZdIHx8ICFvYmouaWRzIHx8IG9iai5pZHMubGVuZ3RoICE9PSAxMSkgcmV0dXJuOwogICAgc3RhdGUuZm9ybWF0aW9uID0gb2JqLmY7CiAgICBzdGF0ZS5zbG90cyA9IGJ1aWxkU2xvdHMob2JqLmYpOwogICAgdmFyIGRlZiA9IEZPUk1BVElPTlNbb2JqLmZdLCBwZW5kID0gW10sIGk7CiAgICBmb3IgKGkgPSAwOyBpIDwgMTE7IGkrKykgaWYgKG9iai5pZHNbaV0pIHBlbmQucHVzaCh7IHJvbGU6IGRlZltpXVswXSwgaWQ6IG9iai5pZHNbaV0gfSk7CiAgICBpZiAocGVuZC5sZW5ndGgpIHN0YXRlLnBlbmRpbmcgPSBwZW5kOwogIH0KICBmdW5jdGlvbiBhcHBseVBlbmRpbmcoKXsKICAgIGlmICghc3RhdGUucGVuZGluZyB8fCAhc3RhdGUuZGF0YSkgcmV0dXJuOwogICAgdmFyIHBlbmQgPSBzdGF0ZS5wZW5kaW5nLCBpLCBqLCBwOwogICAgc3RhdGUucGVuZGluZyA9IG51bGw7CiAgICBmb3IgKGkgPSAwOyBpIDwgcGVuZC5sZW5ndGg7IGkrKyl7CiAgICAgIHAgPSBzdGF0ZS5ieUlkW3BlbmRbaV0uaWRdOwogICAgICBpZiAoIXApIGNvbnRpbnVlOwogICAgICBmb3IgKGogPSAwOyBqIDwgc3RhdGUuc2xvdHMubGVuZ3RoOyBqKyspewogICAgICAgIGlmIChzdGF0ZS5zbG90c1tqXS5yb2xlID09PSBwZW5kW2ldLnJvbGUgJiYgIXN0YXRlLnNsb3RzW2pdLnBsYXllcil7IHN0YXRlLnNsb3RzW2pdLnBsYXllciA9IHA7IGJyZWFrOyB9CiAgICAgIH0KICAgIH0KICB9CgogIGZ1bmN0aW9uIGxvYWREYXRhKCl7CiAgICBpZiAoc3RhdGUuZGF0YSB8fCBzdGF0ZS5sb2FkaW5nKSByZXR1cm47CiAgICBzdGF0ZS5sb2FkaW5nID0gdHJ1ZTsgc3RhdGUubG9hZEVycm9yID0gZmFsc2U7CiAgICByZW5kZXJQYW5lbExpc3QoKTsKICAgIHJjd0xvYWRTZXQoUkNXX1NSQy50b3ApLnRoZW4oZnVuY3Rpb24oZCl7CiAgICAgIHZhciBpLCBwOwogICAgICBmb3IgKGkgPSAwOyBpIDwgZC5wbGF5ZXJzLmxlbmd0aDsgaSsrKXsgcCA9IGQucGxheWVyc1tpXTsgcC5fcyA9IG5vcm0ocC5uKTsgc3RhdGUuYnlJZFtwLmlkXSA9IHA7IH0KICAgICAgc3RhdGUuZGF0YSA9IGQ7CiAgICAgIHN0YXRlLmxvYWRpbmcgPSBmYWxzZTsKICAgICAgaWYgKHVwZEVsKSB1cGRFbC50ZXh0Q29udGVudCA9IGQuc2NyYXBlZEF0IHx8ICcnOwogICAgICBhcHBseVBlbmRpbmcoKTsKICAgICAgcmVuZGVyQWxsKCk7CiAgICAgIHJlbmRlclBhbmVsTGlzdCgpOwogICAgfSkuY2F0Y2goZnVuY3Rpb24oKXsKICAgICAgc3RhdGUubG9hZGluZyA9IGZhbHNlOyBzdGF0ZS5sb2FkRXJyb3IgPSB0cnVlOwogICAgICByZW5kZXJQYW5lbExpc3QoKTsKICAgIH0pOwogIH0KCiAgdmFyIG5vdGVUaW1lciA9IDA7CiAgZnVuY3Rpb24gc2hvd05vdGUobXNnKXsKICAgIG5vdGVFbC50ZXh0Q29udGVudCA9IG1zZzsKICAgIG5vdGVFbC5oaWRkZW4gPSBmYWxzZTsKICAgIGNsZWFyVGltZW91dChub3RlVGltZXIpOwogICAgbm90ZVRpbWVyID0gc2V0VGltZW91dChmdW5jdGlvbigpeyBub3RlRWwuaGlkZGVuID0gdHJ1ZTsgfSwgNDAwMCk7CiAgfQoKICBmdW5jdGlvbiBhcHBseUZvcm1hdGlvbihmKXsKICAgIGlmICghRk9STUFUSU9OU1tmXSB8fCBmID09PSBzdGF0ZS5mb3JtYXRpb24pIHJldHVybjsKICAgIHZhciBuZXh0ID0gYnVpbGRTbG90cyhmKSwgcG9vbCA9IFtdLCBpLCBqOwogICAgZm9yIChpID0gMDsgaSA8IHN0YXRlLnNsb3RzLmxlbmd0aDsgaSsrKSBpZiAoc3RhdGUuc2xvdHNbaV0ucGxheWVyKSBwb29sLnB1c2goeyByb2xlOiBzdGF0ZS5zbG90c1tpXS5yb2xlLCBwbGF5ZXI6IHN0YXRlLnNsb3RzW2ldLnBsYXllciB9KTsKICAgIGZvciAoaSA9IDA7IGkgPCBuZXh0Lmxlbmd0aDsgaSsrKXsKICAgICAgZm9yIChqID0gMDsgaiA8IHBvb2wubGVuZ3RoOyBqKyspewogICAgICAgIGlmIChwb29sW2pdLnJvbGUgPT09IG5leHRbaV0ucm9sZSl7IG5leHRbaV0ucGxheWVyID0gcG9vbFtqXS5wbGF5ZXI7IHBvb2wuc3BsaWNlKGosIDEpOyBicmVhazsgfQogICAgICB9CiAgICB9CiAgICBzdGF0ZS5mb3JtYXRpb24gPSBmOwogICAgc3RhdGUuc2xvdHMgPSBuZXh0OwogICAgaWYgKHBvb2wubGVuZ3RoID4gMCkgc2hvd05vdGUocG9vbC5sZW5ndGggPT09IDEgPyAnMSBwbGF5ZXIgcmVtb3ZlZCDigJQgJyArIGYgKyAnIGhhcyBubyBzbG90IGZvciB0aGVpciBwb3NpdGlvbi4nIDogcG9vbC5sZW5ndGggKyAnIHBsYXllcnMgcmVtb3ZlZCDigJQgJyArIGYgKyAnIGhhcyBubyBzbG90IGZvciB0aGVpciBwb3NpdGlvbnMuJyk7CiAgICByZW5kZXJBbGwoKTsKICAgIGNsb3NlUGFuZWwoZmFsc2UpOwogIH0KCiAgZnVuY3Rpb24gY3VycmVudENoZW0oKXsKICAgIHZhciBlbnRyaWVzID0gW10sIGlkeCA9IFtdLCBpLCBrOwogICAgZm9yIChpID0gMDsgaSA8IHN0YXRlLnNsb3RzLmxlbmd0aDsgaSsrKXsKICAgICAgaWYgKHN0YXRlLnNsb3RzW2ldLnBsYXllcil7IGVudHJpZXMucHVzaCh7IHA6IHN0YXRlLnNsb3RzW2ldLnBsYXllciwgcm9sZTogc3RhdGUuc2xvdHNbaV0ucm9sZSB9KTsgaWR4LnB1c2goaSk7IH0KICAgIH0KICAgIHZhciBjID0gY29tcHV0ZUNoZW0oZW50cmllcyksIGJ5U2xvdCA9IHt9LCBvb3BCeVNsb3QgPSB7fTsKICAgIGZvciAoayA9IDA7IGsgPCBpZHgubGVuZ3RoOyBrKyspeyBieVNsb3RbaWR4W2tdXSA9IGMucGVyW2tdOyBvb3BCeVNsb3RbaWR4W2tdXSA9IGMub29wW2tdOyB9CiAgICByZXR1cm4geyBieVNsb3Q6IGJ5U2xvdCwgb29wQnlTbG90OiBvb3BCeVNsb3QsIHRlYW06IGMudGVhbSwgYXZnOiBjLmF2ZywgY291bnQ6IGVudHJpZXMubGVuZ3RoIH07CiAgfQoKICBmdW5jdGlvbiBta0ZhY2UocCwgY2xzKXsKICAgIHZhciBpbWcgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdpbWcnKTsKICAgIGltZy5jbGFzc05hbWUgPSBjbHM7IGltZy5hbHQgPSAnJzsgaW1nLmxvYWRpbmcgPSAnbGF6eSc7IGltZy5kZWNvZGluZyA9ICdhc3luYyc7CiAgICBpbWcuc3JjID0gJ2h0dHBzOi8vcmF0aW5ncy1pbWFnZXMtcHJvZC5wdWxzZS5lYS5jb20vRkMyNS9mdWxsL3BsYXllci1wb3J0cmFpdHMvcCcgKyBwLmlkICsgJy5wbmc\/cGFkZGluZz0wLjcnOwogICAgaW1nLm9uZXJyb3IgPSBmdW5jdGlvbigpewogICAgICBpbWcub25lcnJvciA9IG51bGw7CiAgICAgIHZhciBzID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnc3BhbicpOwogICAgICBzLmNsYXNzTmFtZSA9IGNscyArICcgcmN3LWZjc2ItaW5pdCc7CiAgICAgIHMuc3R5bGUuYmFja2dyb3VuZCA9IEFWQ09MT1JTW3AuaWQgJSBBVkNPTE9SUy5sZW5ndGhdOwogICAgICBzLnRleHRDb250ZW50ID0gaW5pdGlhbHMocC5uKTsKICAgICAgaWYgKGltZy5wYXJlbnROb2RlKSBpbWcucGFyZW50Tm9kZS5yZXBsYWNlQ2hpbGQocywgaW1nKTsKICAgIH07CiAgICByZXR1cm4gaW1nOwogIH0KICBmdW5jdGlvbiBta0NyZXN0KGNsdWIsIGNscyl7CiAgICB2YXIgbGFiZWwgPSBjbHViICYmIGNsdWIubGFiZWwgPyBjbHViLmxhYmVsIDogJyc7CiAgICBmdW5jdGlvbiBmYWxsYmFjaygpewogICAgICB2YXIgcyA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3NwYW4nKTsKICAgICAgcy5jbGFzc05hbWUgPSBjbHMgKyAnIHJjdy1mY3NiLWNyZXN0aW5pdCc7CiAgICAgIHMudGV4dENvbnRlbnQgPSBsYWJlbCA\/IGxhYmVsLmNoYXJBdCgwKS50b1VwcGVyQ2FzZSgpIDogJ+KAkyc7CiAgICAgIHJldHVybiBzOwogICAgfQogICAgaWYgKCFjbHViIHx8ICFjbHViLmltZykgcmV0dXJuIGZhbGxiYWNrKCk7CiAgICB2YXIgaW1nID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnaW1nJyk7CiAgICBpbWcuY2xhc3NOYW1lID0gY2xzOyBpbWcuYWx0ID0gbGFiZWw7IGltZy5sb2FkaW5nID0gJ2xhenknOyBpbWcuZGVjb2RpbmcgPSAnYXN5bmMnOyBpbWcuc3JjID0gY2x1Yi5pbWc7CiAgICBpbWcub25lcnJvciA9IGZ1bmN0aW9uKCl7IGltZy5vbmVycm9yID0gbnVsbDsgaWYgKGltZy5wYXJlbnROb2RlKSBpbWcucGFyZW50Tm9kZS5yZXBsYWNlQ2hpbGQoZmFsbGJhY2soKSwgaW1nKTsgfTsKICAgIHJldHVybiBpbWc7CiAgfQoKICBmdW5jdGlvbiBzbG90Tm9kZShzLCBpLCBjaCl7CiAgICB2YXIgYiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2J1dHRvbicpOwogICAgYi50eXBlID0gJ2J1dHRvbic7CiAgICBiLmNsYXNzTmFtZSA9ICdyY3ctZmNzYi1zbG90JzsKICAgIGIuc2V0QXR0cmlidXRlKCdkYXRhLWknLCBTdHJpbmcoaSkpOwogICAgYi5zdHlsZS5sZWZ0ID0gcy54ICsgJyUnOwogICAgYi5zdHlsZS50b3AgPSBzLnkgKyAnJSc7CiAgICBpZiAoIXMucGxheWVyKXsKICAgICAgdmFyIGMgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdzcGFuJyk7CiAgICAgIGMuY2xhc3NOYW1lID0gJ3Jjdy1mY3NiLWVtcHR5Yyc7CiAgICAgIGMudGV4dENvbnRlbnQgPSBzLnJvbGU7CiAgICAgIGIuYXBwZW5kQ2hpbGQoYyk7CiAgICAgIGIuc2V0QXR0cmlidXRlKCdhcmlhLWxhYmVsJywgcy5yb2xlICsgJyDigJQgZW1wdHkuIEFkZCBhIHBsYXllci4nKTsKICAgIH0gZWxzZSB7CiAgICAgIHZhciBwID0gcy5wbGF5ZXI7CiAgICAgIHZhciBjYXJkID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnc3BhbicpOyBjYXJkLmNsYXNzTmFtZSA9ICdyY3ctZmNzYi1jYXJkJzsKICAgICAgdmFyIGZ3ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnc3BhbicpOyBmdy5jbGFzc05hbWUgPSAncmN3LWZjc2ItZmFjZXdyYXAnOwogICAgICBmdy5hcHBlbmRDaGlsZChta0ZhY2UocCwgJ3Jjdy1mY3NiLWZhY2UnKSk7CiAgICAgIHZhciBvdiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3NwYW4nKTsgb3YuY2xhc3NOYW1lID0gJ3Jjdy1mY3NiLW92ciAnICsgdGllckNsYXNzKHAubyk7IG92LnRleHRDb250ZW50ID0gU3RyaW5nKHAubyk7CiAgICAgIGZ3LmFwcGVuZENoaWxkKG92KTsKICAgICAgdmFyIGNsdWIgPSBzdGF0ZS5kYXRhID8gc3RhdGUuZGF0YS5jbHVic1tTdHJpbmcocC5jKV0gOiBudWxsOwogICAgICBpZiAoY2x1YikgZncuYXBwZW5kQ2hpbGQobWtDcmVzdChjbHViLCAncmN3LWZjc2ItY3Jlc3QnKSk7CiAgICAgIHZhciBvb3AgPSAhIWNoLm9vcEJ5U2xvdFtpXTsKICAgICAgaWYgKG9vcCl7CiAgICAgICAgdmFyIGQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdzcGFuJyk7IGQuY2xhc3NOYW1lID0gJ3Jjdy1mY3NiLW9vcCc7IGQudGl0bGUgPSAnT3V0IG9mIHBvc2l0aW9uJzsKICAgICAgICBmdy5hcHBlbmRDaGlsZChkKTsKICAgICAgfQogICAgICBjYXJkLmFwcGVuZENoaWxkKGZ3KTsKICAgICAgdmFyIG5tID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnc3BhbicpOyBubS5jbGFzc05hbWUgPSAncmN3LWZjc2Itc25hbWUnOyBubS50ZXh0Q29udGVudCA9IHNob3J0TmFtZShwLm4pOwogICAgICBjYXJkLmFwcGVuZENoaWxkKG5tKTsKICAgICAgdmFyIGNodiA9IGNoLmJ5U2xvdFtpXSB8fCAwLCBrOwogICAgICB2YXIgZG0gPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdzcGFuJyk7IGRtLmNsYXNzTmFtZSA9ICdyY3ctZmNzYi1jaGVtcyc7CiAgICAgIGZvciAoayA9IDE7IGsgPD0gMzsgaysrKXsKICAgICAgICB2YXIgZGQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdzcGFuJyk7CiAgICAgICAgZGQuY2xhc3NOYW1lID0gJ3Jjdy1mY3NiLWQnICsgKGsgPD0gY2h2ID8gJyByY3ctZmNzYi1kb24nIDogJycpOwogICAgICAgIGRtLmFwcGVuZENoaWxkKGRkKTsKICAgICAgfQogICAgICBjYXJkLmFwcGVuZENoaWxkKGRtKTsKICAgICAgYi5hcHBlbmRDaGlsZChjYXJkKTsKICAgICAgYi5zZXRBdHRyaWJ1dGUoJ2FyaWEtbGFiZWwnLCBzLnJvbGUgKyAnIOKAlCAnICsgcC5uICsgJywgcmF0ZWQgJyArIHAubyArICcsIGNoZW1pc3RyeSAnICsgY2h2ICsgJyBvZiAzJyArIChvb3AgPyAnLCBvdXQgb2YgcG9zaXRpb24nIDogJycpICsgJy4gVGFwIHRvIHJlcGxhY2UuJyk7CiAgICB9CiAgICBiLmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgZnVuY3Rpb24oKXsgb3BlblBhbmVsKGkpOyB9KTsKICAgIHJldHVybiBiOwogIH0KCiAgZnVuY3Rpb24gcmVuZGVyU2xvdHMoY2gpewogICAgc2xvdHNFbC50ZXh0Q29udGVudCA9ICcnOwogICAgdmFyIGk7CiAgICBmb3IgKGkgPSAwOyBpIDwgc3RhdGUuc2xvdHMubGVuZ3RoOyBpKyspIHNsb3RzRWwuYXBwZW5kQ2hpbGQoc2xvdE5vZGUoc3RhdGUuc2xvdHNbaV0sIGksIGNoKSk7CiAgfQogIGZ1bmN0aW9uIHVwZGF0ZUJhcihjaCl7CiAgICBzdGF0Ui50ZXh0Q29udGVudCA9IGNoLmNvdW50ID8gKE1hdGgucm91bmQoY2guYXZnICogMTApIC8gMTApLnRvRml4ZWQoMSkgOiAn4oCUJzsKICAgIHN0YXRDLnRleHRDb250ZW50ID0gY2gudGVhbSArICcvMzMnOwogICAgc3RhdE4udGV4dENvbnRlbnQgPSBjaC5jb3VudCArICcvMTEnOwogIH0KICBmdW5jdGlvbiByZW5kZXJBbGwoKXsKICAgIHZhciBjaCA9IGN1cnJlbnRDaGVtKCk7CiAgICByZW5kZXJTbG90cyhjaCk7CiAgICB1cGRhdGVCYXIoY2gpOwogICAgc2F2ZSgpOwogIH0KCiAgLyogLS0tLSBwaWNrZXIgcGFuZWwgLS0tLSAqLwogIGZ1bmN0aW9uIG9wZW5QYW5lbChpKXsKICAgIHN0YXRlLnBpY2tJbmRleCA9IGk7CiAgICBzdGF0ZS5hbGxQb3MgPSBmYWxzZTsKICAgIHN0YXRlLnF1ZXJ5ID0gJyc7CiAgICB0b2dFbC5zZXRBdHRyaWJ1dGUoJ2FyaWEtcHJlc3NlZCcsICdmYWxzZScpOwogICAgc2VhcmNoRWwudmFsdWUgPSAnJzsKICAgIHZhciBzID0gc3RhdGUuc2xvdHNbaV07CiAgICBwYW5lbFRpdGxlLnRleHRDb250ZW50ID0gKHMucGxheWVyID8gJ1JlcGxhY2UgJyA6ICdQaWNrIGEgJykgKyBzLnJvbGU7CiAgICByZW1vdmVCdG4uaGlkZGVuID0gIXMucGxheWVyOwogICAgcm9vdC5jbGFzc0xpc3QuYWRkKCdyY3ctZmNzYi1vcGVuJyk7CiAgICBpZiAoIXN0YXRlLmRhdGEpIGxvYWREYXRhKCk7CiAgICByZW5kZXJQYW5lbExpc3QoKTsKICAgIHRyeSB7IHNlYXJjaEVsLmZvY3VzKCk7IH0gY2F0Y2ggKGUpIHt9CiAgfQogIGZ1bmN0aW9uIGNsb3NlUGFuZWwoZm9jdXNCYWNrKXsKICAgIGlmIChzdGF0ZS5waWNrSW5kZXggPCAwKSByZXR1cm47CiAgICB2YXIgaSA9IHN0YXRlLnBpY2tJbmRleDsKICAgIHN0YXRlLnBpY2tJbmRleCA9IC0xOwogICAgcm9vdC5jbGFzc0xpc3QucmVtb3ZlKCdyY3ctZmNzYi1vcGVuJyk7CiAgICBpZiAoZm9jdXNCYWNrICE9PSBmYWxzZSl7CiAgICAgIHZhciBlbCA9IHNsb3RzRWwucXVlcnlTZWxlY3RvcignW2RhdGEtaT0iJyArIGkgKyAnIl0nKTsKICAgICAgaWYgKGVsKXsgdHJ5IHsgZWwuZm9jdXMoKTsgfSBjYXRjaCAoZSkge30gfQogICAgfQogIH0KICBmdW5jdGlvbiBtc2dOb2RlKHR4dCwgd2l0aFNwaW4sIHdpdGhSZXRyeSl7CiAgICB2YXIgdyA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpOyB3LmNsYXNzTmFtZSA9ICdyY3ctZmNzYi1zdGF0ZSc7CiAgICBpZiAod2l0aFNwaW4peyB2YXIgc3AgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdzcGFuJyk7IHNwLmNsYXNzTmFtZSA9ICdyY3ctZmNzYi1zcGluJzsgdy5hcHBlbmRDaGlsZChzcCk7IH0KICAgIHZhciB0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgncCcpOyB0LmNsYXNzTmFtZSA9ICdyY3ctZmNzYi1zdGF0ZXR4dCc7IHQudGV4dENvbnRlbnQgPSB0eHQ7IHcuYXBwZW5kQ2hpbGQodCk7CiAgICBpZiAod2l0aFJldHJ5KXsKICAgICAgdmFyIGIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdidXR0b24nKTsKICAgICAgYi50eXBlID0gJ2J1dHRvbic7CiAgICAgIGIuY2xhc3NOYW1lID0gJ3Jjdy1mY3NiLWJ0biByY3ctZmNzYi1idG4tc2VjJzsKICAgICAgYi50ZXh0Q29udGVudCA9ICdSZXRyeSc7CiAgICAgIGIuYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLCBmdW5jdGlvbigpeyBzdGF0ZS5sb2FkRXJyb3IgPSBmYWxzZTsgbG9hZERhdGEoKTsgfSk7CiAgICAgIHcuYXBwZW5kQ2hpbGQoYik7CiAgICB9CiAgICByZXR1cm4gdzsKICB9CiAgZnVuY3Rpb24gcm93Tm9kZShwLCBpblhJKXsKICAgIHZhciBiID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnYnV0dG9uJyk7CiAgICBiLnR5cGUgPSAnYnV0dG9uJzsKICAgIGIuY2xhc3NOYW1lID0gJ3Jjdy1mY3NiLXJvdycgKyAoaW5YSSA\/ICcgcmN3LWZjc2ItZGltcicgOiAnJyk7CiAgICBiLmFwcGVuZENoaWxkKG1rRmFjZShwLCAncmN3LWZjc2ItcmZhY2UnKSk7CiAgICB2YXIgbWFpbiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3NwYW4nKTsgbWFpbi5jbGFzc05hbWUgPSAncmN3LWZjc2Itcm1haW4nOwogICAgdmFyIG5tID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnc3BhbicpOyBubS5jbGFzc05hbWUgPSAncmN3LWZjc2Itcm5hbWUnOyBubS50ZXh0Q29udGVudCA9IHAubjsKICAgIG1haW4uYXBwZW5kQ2hpbGQobm0pOwogICAgdmFyIG1ldGEgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdzcGFuJyk7IG1ldGEuY2xhc3NOYW1lID0gJ3Jjdy1mY3NiLXJtZXRhJzsKICAgIHZhciBwb3MgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdzcGFuJyk7IHBvcy5jbGFzc05hbWUgPSAncmN3LWZjc2ItcnBvcyc7IHBvcy50ZXh0Q29udGVudCA9IHAucDsKICAgIG1ldGEuYXBwZW5kQ2hpbGQocG9zKTsKICAgIHZhciBjbHViID0gc3RhdGUuZGF0YS5jbHVic1tTdHJpbmcocC5jKV07CiAgICBpZiAoY2x1Yil7CiAgICAgIG1ldGEuYXBwZW5kQ2hpbGQobWtDcmVzdChjbHViLCAncmN3LWZjc2ItcmNyZXN0JykpOwogICAgICB2YXIgY2wgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdzcGFuJyk7IGNsLmNsYXNzTmFtZSA9ICdyY3ctZmNzYi1yY2x1Yic7IGNsLnRleHRDb250ZW50ID0gY2x1Yi5sYWJlbDsKICAgICAgbWV0YS5hcHBlbmRDaGlsZChjbCk7CiAgICB9IGVsc2UgewogICAgICB2YXIgbGcgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdzcGFuJyk7IGxnLmNsYXNzTmFtZSA9ICdyY3ctZmNzYi1yY2x1Yic7IGxnLnRleHRDb250ZW50ID0gcC5sZyB8fCAn4oCUJzsKICAgICAgbWV0YS5hcHBlbmRDaGlsZChsZyk7CiAgICB9CiAgICBpZiAoaW5YSSl7IHZhciB0YWcgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdzcGFuJyk7IHRhZy5jbGFzc05hbWUgPSAncmN3LWZjc2ItaW54aSc7IHRhZy50ZXh0Q29udGVudCA9ICdJbiBYSSc7IG1ldGEuYXBwZW5kQ2hpbGQodGFnKTsgfQogICAgbWFpbi5hcHBlbmRDaGlsZChtZXRhKTsKICAgIGIuYXBwZW5kQ2hpbGQobWFpbik7CiAgICB2YXIgb3YgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdzcGFuJyk7IG92LmNsYXNzTmFtZSA9ICdyY3ctZmNzYi1iICcgKyB0aWVyQ2xhc3MocC5vKTsgb3YudGV4dENvbnRlbnQgPSBTdHJpbmcocC5vKTsKICAgIGIuYXBwZW5kQ2hpbGQob3YpOwogICAgYi5zZXRBdHRyaWJ1dGUoJ2FyaWEtbGFiZWwnLCBwLm4gKyAnLCAnICsgcC5wICsgJywgcmF0ZWQgJyArIHAubyArIChjbHViID8gJywgJyArIGNsdWIubGFiZWwgOiAnJykpOwogICAgYi5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsIGZ1bmN0aW9uKCl7IHBsYWNlUGxheWVyKHAuaWQpOyB9KTsKICAgIHJldHVybiBiOwogIH0KICBmdW5jdGlvbiByZW5kZXJQYW5lbExpc3QoKXsKICAgIGlmIChzdGF0ZS5waWNrSW5kZXggPCAwKSByZXR1cm47CiAgICBsaXN0RWwudGV4dENvbnRlbnQgPSAnJzsKICAgIGlmIChzdGF0ZS5sb2FkRXJyb3IpewogICAgICBsaXN0RWwuYXBwZW5kQ2hpbGQobXNnTm9kZSgnQ291bGRu4oCZdCBsb2FkIHRoZSBwbGF5ZXIgZGF0YWJhc2UuIENoZWNrIHlvdXIgY29ubmVjdGlvbiBhbmQgdHJ5IGFnYWluLicsIGZhbHNlLCB0cnVlKSk7CiAgICAgIHJldHVybjsKICAgIH0KICAgIGlmICghc3RhdGUuZGF0YSl7CiAgICAgIGxpc3RFbC5hcHBlbmRDaGlsZChtc2dOb2RlKCdMb2FkaW5nIHBsYXllciBkYXRhYmFzZeKApicsIHRydWUsIGZhbHNlKSk7CiAgICAgIHJldHVybjsKICAgIH0KICAgIHZhciByb2xlID0gc3RhdGUuc2xvdHNbc3RhdGUucGlja0luZGV4XS5yb2xlOwogICAgdmFyIHBvb2wgPSBwb29sRm9yKHN0YXRlLmRhdGEucGxheWVycywgcm9sZSwgc3RhdGUuYWxsUG9zLCBzdGF0ZS5xdWVyeSk7CiAgICBpZiAoIXBvb2wubGVuZ3RoKXsKICAgICAgbGlzdEVsLmFwcGVuZENoaWxkKG1zZ05vZGUoJ05vIHBsYXllcnMgbWF0Y2ggeW91ciBmaWx0ZXJzLicsIGZhbHNlLCBmYWxzZSkpOwogICAgICByZXR1cm47CiAgICB9CiAgICB2YXIgbWF4ID0gNjAsIG4gPSBNYXRoLm1pbihwb29sLmxlbmd0aCwgbWF4KSwgaTsKICAgIHZhciBwbGFjZWQgPSB7fSwgZnJhZyA9IGRvY3VtZW50LmNyZWF0ZURvY3VtZW50RnJhZ21lbnQoKTsKICAgIGZvciAoaSA9IDA7IGkgPCBzdGF0ZS5zbG90cy5sZW5ndGg7IGkrKykgaWYgKHN0YXRlLnNsb3RzW2ldLnBsYXllcikgcGxhY2VkW3N0YXRlLnNsb3RzW2ldLnBsYXllci5pZF0gPSAxOwogICAgZm9yIChpID0gMDsgaSA8IG47IGkrKykgZnJhZy5hcHBlbmRDaGlsZChyb3dOb2RlKHBvb2xbaV0sICEhcGxhY2VkW3Bvb2xbaV0uaWRdKSk7CiAgICBsaXN0RWwuYXBwZW5kQ2hpbGQoZnJhZyk7CiAgICBpZiAocG9vbC5sZW5ndGggPiBtYXgpewogICAgICB2YXIgbSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpOyBtLmNsYXNzTmFtZSA9ICdyY3ctZmNzYi1tb3JlJzsKICAgICAgbS50ZXh0Q29udGVudCA9ICdTaG93aW5nIHRoZSB0b3AgJyArIG1heCArICcgb2YgJyArIHBvb2wubGVuZ3RoICsgJyDigJQgdHlwZSB0byBuYXJyb3cgaXQgZG93bi4nOwogICAgICBsaXN0RWwuYXBwZW5kQ2hpbGQobSk7CiAgICB9CiAgICBsaXN0RWwuc2Nyb2xsVG9wID0gMDsKICB9CiAgZnVuY3Rpb24gcGxhY2VQbGF5ZXIoaWQpewogICAgdmFyIGkgPSBzdGF0ZS5waWNrSW5kZXg7CiAgICBpZiAoaSA8IDApIHJldHVybjsKICAgIHZhciBwID0gc3RhdGUuYnlJZFtpZF07CiAgICBpZiAoIXApIHJldHVybjsKICAgIHZhciBrOwogICAgZm9yIChrID0gMDsgayA8IHN0YXRlLnNsb3RzLmxlbmd0aDsgaysrKXsKICAgICAgaWYgKHN0YXRlLnNsb3RzW2tdLnBsYXllciAmJiBzdGF0ZS5zbG90c1trXS5wbGF5ZXIuaWQgPT09IGlkKSBzdGF0ZS5zbG90c1trXS5wbGF5ZXIgPSBudWxsOwogICAgfQogICAgc3RhdGUuc2xvdHNbaV0ucGxheWVyID0gcDsKICAgIHJlbmRlckFsbCgpOwogICAgY2xvc2VQYW5lbCh0cnVlKTsKICB9CgogIC8qIC0tLS0gY29weSBzcXVhZCAtLS0tICovCiAgZnVuY3Rpb24gc3F1YWRUZXh0KCl7CiAgICB2YXIgY2ggPSBjdXJyZW50Q2hlbSgpLCBsaW5lcyA9IFtdLCBpLCBzLCBjbHViOwogICAgbGluZXMucHVzaCgnRkMgMjcgU3F1YWQg4oCUICcgKyBzdGF0ZS5mb3JtYXRpb24pOwogICAgZm9yIChpID0gMDsgaSA8IHN0YXRlLnNsb3RzLmxlbmd0aDsgaSsrKXsKICAgICAgcyA9IHN0YXRlLnNsb3RzW2ldOwogICAgICBpZiAocy5wbGF5ZXIpewogICAgICAgIGNsdWIgPSBzdGF0ZS5kYXRhID8gc3RhdGUuZGF0YS5jbHVic1tTdHJpbmcocy5wbGF5ZXIuYyldIDogbnVsbDsKICAgICAgICBsaW5lcy5wdXNoKHMucm9sZSArICcgICcgKyBzLnBsYXllci5uICsgJyAgJyArIHMucGxheWVyLm8gKyAnICAnICsgKGNsdWIgPyBjbHViLmxhYmVsIDogKHMucGxheWVyLmxnIHx8ICcnKSkpOwogICAgICB9IGVsc2UgewogICAgICAgIGxpbmVzLnB1c2gocy5yb2xlICsgJyAg4oCUJyk7CiAgICAgIH0KICAgIH0KICAgIGxpbmVzLnB1c2goJ1RlYW0gcmF0aW5nOiAnICsgKGNoLmNvdW50ID8gKE1hdGgucm91bmQoY2guYXZnICogMTApIC8gMTApLnRvRml4ZWQoMSkgOiAn4oCUJykgKyAnIMK3IENoZW1pc3RyeSAoZXN0Lik6ICcgKyBjaC50ZWFtICsgJy8zMycpOwogICAgcmV0dXJuIGxpbmVzLmpvaW4oJ1xuJyk7CiAgfQogIHZhciBjb3B5VGltZXIgPSAwOwogIGZ1bmN0aW9uIGNvcGllZFN0YXRlKCl7CiAgICBjb3B5QnRuLnRleHRDb250ZW50ID0gJ0NvcGllZCDinJMnOwogICAgY29weUJ0bi5jbGFzc0xpc3QuYWRkKCdyY3ctZmNzYi1va2InKTsKICAgIGNsZWFyVGltZW91dChjb3B5VGltZXIpOwogICAgY29weVRpbWVyID0gc2V0VGltZW91dChmdW5jdGlvbigpewogICAgICBjb3B5QnRuLnRleHRDb250ZW50ID0gJ0NvcHkgc3F1YWQnOwogICAgICBjb3B5QnRuLmNsYXNzTGlzdC5yZW1vdmUoJ3Jjdy1mY3NiLW9rYicpOwogICAgfSwgMjAwMCk7CiAgfQogIGZ1bmN0aW9uIGNvcHlGYWxsYmFjayh0eHQpewogICAgdHJ5IHsKICAgICAgdmFyIHRhID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndGV4dGFyZWEnKTsKICAgICAgdGEudmFsdWUgPSB0eHQ7CiAgICAgIHRhLnNldEF0dHJpYnV0ZSgncmVhZG9ubHknLCAnJyk7CiAgICAgIHRhLnN0eWxlLnBvc2l0aW9uID0gJ2ZpeGVkJzsKICAgICAgdGEuc3R5bGUubGVmdCA9ICctOTk5OXB4JzsKICAgICAgdGEuc3R5bGUudG9wID0gJzAnOwogICAgICByb290LmFwcGVuZENoaWxkKHRhKTsKICAgICAgdGEuc2VsZWN0KCk7CiAgICAgIHRhLnNldFNlbGVjdGlvblJhbmdlKDAsIHR4dC5sZW5ndGgpOwogICAgICBkb2N1bWVudC5leGVjQ29tbWFuZCgnY29weScpOwogICAgICByb290LnJlbW92ZUNoaWxkKHRhKTsKICAgICAgY29waWVkU3RhdGUoKTsKICAgIH0gY2F0Y2ggKGUpIHt9CiAgfQogIGZ1bmN0aW9uIGRvQ29weSgpewogICAgdmFyIHR4dCA9IHNxdWFkVGV4dCgpOwogICAgaWYgKG5hdmlnYXRvci5jbGlwYm9hcmQgJiYgbmF2aWdhdG9yLmNsaXBib2FyZC53cml0ZVRleHQpewogICAgICBuYXZpZ2F0b3IuY2xpcGJvYXJkLndyaXRlVGV4dCh0eHQpLnRoZW4oY29waWVkU3RhdGUsIGZ1bmN0aW9uKCl7IGNvcHlGYWxsYmFjayh0eHQpOyB9KTsKICAgIH0gZWxzZSB7CiAgICAgIGNvcHlGYWxsYmFjayh0eHQpOwogICAgfQogIH0KCiAgLyogLS0tLSByZXNldCB3aXRoIGlubGluZSB0d28tdGFwIGNvbmZpcm0gLS0tLSAqLwogIHZhciByZXNldEFybWVkID0gZmFsc2UsIHJlc2V0VGltZXIgPSAwOwogIGZ1bmN0aW9uIGRpc2FybVJlc2V0KCl7CiAgICByZXNldEFybWVkID0gZmFsc2U7CiAgICByZXNldEJ0bi50ZXh0Q29udGVudCA9ICdSZXNldCBzcXVhZCc7CiAgICByZXNldEJ0bi5jbGFzc0xpc3QucmVtb3ZlKCdyY3ctZmNzYi1kYW5nZXJiJyk7CiAgfQogIHJlc2V0QnRuLmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgZnVuY3Rpb24oKXsKICAgIGlmICghcmVzZXRBcm1lZCl7CiAgICAgIHJlc2V0QXJtZWQgPSB0cnVlOwogICAgICByZXNldEJ0bi50ZXh0Q29udGVudCA9ICdUYXAgYWdhaW4gdG8gY29uZmlybSc7CiAgICAgIHJlc2V0QnRuLmNsYXNzTGlzdC5hZGQoJ3Jjdy1mY3NiLWRhbmdlcmInKTsKICAgICAgY2xlYXJUaW1lb3V0KHJlc2V0VGltZXIpOwogICAgICByZXNldFRpbWVyID0gc2V0VGltZW91dChkaXNhcm1SZXNldCwgMzAwMCk7CiAgICAgIHJldHVybjsKICAgIH0KICAgIGNsZWFyVGltZW91dChyZXNldFRpbWVyKTsKICAgIGRpc2FybVJlc2V0KCk7CiAgICB2YXIgaTsKICAgIGZvciAoaSA9IDA7IGkgPCBzdGF0ZS5zbG90cy5sZW5ndGg7IGkrKykgc3RhdGUuc2xvdHNbaV0ucGxheWVyID0gbnVsbDsKICAgIHN0YXRlLnBlbmRpbmcgPSBudWxsOwogICAgcmVuZGVyQWxsKCk7CiAgICBjbG9zZVBhbmVsKGZhbHNlKTsKICB9KTsKCiAgY29weUJ0bi5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsIGRvQ29weSk7CiAgc2VsRWwuYWRkRXZlbnRMaXN0ZW5lcignY2hhbmdlJywgZnVuY3Rpb24oKXsgYXBwbHlGb3JtYXRpb24oc2VsRWwudmFsdWUpOyB9KTsKICBjbG9zZUJ0bi5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsIGZ1bmN0aW9uKCl7IGNsb3NlUGFuZWwodHJ1ZSk7IH0pOwogIGJhY2tkcm9wLmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgZnVuY3Rpb24oKXsgY2xvc2VQYW5lbCh0cnVlKTsgfSk7CiAgcmVtb3ZlQnRuLmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgZnVuY3Rpb24oKXsKICAgIHZhciBpID0gc3RhdGUucGlja0luZGV4OwogICAgaWYgKGkgPCAwKSByZXR1cm47CiAgICBzdGF0ZS5zbG90c1tpXS5wbGF5ZXIgPSBudWxsOwogICAgcmVuZGVyQWxsKCk7CiAgICBjbG9zZVBhbmVsKHRydWUpOwogIH0pOwogIHNlYXJjaEVsLmFkZEV2ZW50TGlzdGVuZXIoJ2lucHV0JywgZnVuY3Rpb24oKXsKICAgIHN0YXRlLnF1ZXJ5ID0gbm9ybShzZWFyY2hFbC52YWx1ZSk7CiAgICByZW5kZXJQYW5lbExpc3QoKTsKICB9KTsKICB0b2dFbC5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsIGZ1bmN0aW9uKCl7CiAgICBzdGF0ZS5hbGxQb3MgPSAhc3RhdGUuYWxsUG9zOwogICAgdG9nRWwuc2V0QXR0cmlidXRlKCdhcmlhLXByZXNzZWQnLCBzdGF0ZS5hbGxQb3MgPyAndHJ1ZScgOiAnZmFsc2UnKTsKICAgIHJlbmRlclBhbmVsTGlzdCgpOwogIH0pOwogIGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ2tleWRvd24nLCBmdW5jdGlvbihldil7CiAgICBpZiAoKGV2LmtleSA9PT0gJ0VzY2FwZScgfHwgZXYua2V5ID09PSAnRXNjJykgJiYgc3RhdGUucGlja0luZGV4ID49IDApIGNsb3NlUGFuZWwodHJ1ZSk7CiAgfSk7CgogIC8qIC0tLS0gaW5pdDogYnVpbGQgcGl0Y2gsIHNpbGVudGx5IHJlc3VtZSBhIHNhdmVkIHNxdWFkIC0tLS0gKi8KICBzdGF0ZS5zbG90cyA9IGJ1aWxkU2xvdHMoc3RhdGUuZm9ybWF0aW9uKTsKICByZXN0b3JlKCk7CiAgc2VsRWwudmFsdWUgPSBzdGF0ZS5mb3JtYXRpb247CiAgcmVuZGVyQWxsKCk7CiAgaWYgKHN0YXRlLnBlbmRpbmcgJiYgJ0ludGVyc2VjdGlvbk9ic2VydmVyJyBpbiB3aW5kb3cpewogICAgdmFyIGlvID0gbmV3IEludGVyc2VjdGlvbk9ic2VydmVyKGZ1bmN0aW9uKGVuKXsKICAgICAgdmFyIGs7CiAgICAgIGZvciAoayA9IDA7IGsgPCBlbi5sZW5ndGg7IGsrKyl7CiAgICAgICAgaWYgKGVuW2tdLmlzSW50ZXJzZWN0aW5nKXsgaW8uZGlzY29ubmVjdCgpOyBsb2FkRGF0YSgpOyBicmVhazsgfQogICAgICB9CiAgICB9LCB7IHJvb3RNYXJnaW46ICc2MDBweCAwcHgnIH0pOwogICAgaW8ub2JzZXJ2ZShyb290KTsKICB9Cn0pKCk7Cg==\"),function(c){return c.charCodeAt(0)})))<\/script>\n<\/div>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-how-chemistry-works\">How chemistry works here<\/h2>\n\n\n\n<p>We use a simplified version of the Ultimate Team system: players earn chemistry from club, league and nation links (thresholds at 2\/4\/7 club-mates, 3\/5\/8 league-mates and 2\/5\/8 compatriots), capped at three per player and 33 for the squad. A player out of position earns nothing \u2014 exactly the trap real FUT squads fall into.<\/p>\n\n\n\n<p>It\u2019s an estimate for planning and debating, not a replica of the in-game engine \u2014 think of it as your paper squad before you spend a single FC Point.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-planning-your-real-squad\">Planning your real FC 27 squad<\/h2>\n\n\n\n<p>Once the game drops, the meta squads will cost coins or FC Points. If you\u2019re topping up, <a href=\"https:\/\/www.recharge.com\/blog\/en-gb\/fc-points-explained-cost-calculator\">our FC Points calculator<\/a> works out the cheapest bundle combination for what you actually want to spend.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-fc-27-faq\">FC 27 FAQ<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\">Is this the official FUT squad builder?<\/h3>\n\n\n\n<p>No \u2014 it\u2019s a free fan tool built on EA\u2019s public ratings data. Nothing here touches your EA account or club.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Can I save my squad?<\/h3>\n\n\n\n<p>Yes, your squad and formation are saved in your browser automatically and restored next time you open the page. Use the copy button to share it as text.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Can I mix men\u2019s and women\u2019s players?<\/h3>\n\n\n\n<p>Yes. The search covers the full database, so a front three of Mbapp\u00e9, Putellas and Salah is all yours.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-more-fc-27\">More FC 27 on Recharge<\/h2>\n\n\n\n<ul class=\"wp-block-list\"><li><a href=\"https:\/\/www.recharge.com\/blog\/en-gb\/fc-27-player-ratings-database\">FC 27 Player Ratings Database<\/a><\/li><li><a href=\"https:\/\/www.recharge.com\/blog\/en-gb\/fc-27-pack-opener-simulator\">FC 27 Pack Opener Simulator<\/a><\/li><li><a href=\"https:\/\/www.recharge.com\/blog\/en-gb\/fc-27-player-comparison-tool\">FC 27 Player Comparison Tool<\/a><\/li><li><a href=\"https:\/\/www.recharge.com\/blog\/en-gb\/fc-27-wonderkids-best-young-players\">FC 27 Wonderkids: Best Young Players<\/a><\/li><li><a href=\"https:\/\/www.recharge.com\/blog\/en-gb\/fc-27-editions-compared-which-to-buy\">FC 27 Editions Compared: Which Should You Buy?<\/a><\/li><li><a href=\"https:\/\/www.recharge.com\/blog\/en-gb\/fc-points-explained-cost-calculator\">FC Points Explained + Cost Calculator<\/a><\/li><\/ul>\n\n\n\n<p><em>Unofficial fan content by Recharge.com \u2014 not affiliated with or endorsed by EA SPORTS. Player data: EA SPORTS FC public ratings database, refreshed automatically; FC 27 launches 25 September 2026.<\/em><\/p>\n\n\n<!-- rcw-fc27-data-links -->\n\n<p><strong>Looking for the right players to put in your XI?<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\"><li><a href=\"https:\/\/www.recharge.com\/blog\/en-gb\/fc-27-player-stats\">FC 27 player stats: search any of 20,689 players<\/a><\/li><li><a href=\"https:\/\/www.recharge.com\/blog\/en-gb\/fc-27-player-lists\">FC 27 best players by position, league and nation<\/a><\/li><\/ul>\n\n\n\n\n<!-- FC 27 popup X8. Platform gift-card showcase (PlayStation \/ Xbox \/ paysafecard Players Pass for Steam), card swaps with the platform choice. No game, no countdown, no page rain. 6 languages, region-matched store. Copy in the markup, timings in CFG. Zero \"and\" symbols on purpose - WordPress entity-encodes them inside script tags. -->\n<style>\n#rcm-root{position:fixed;inset:0;z-index:2147483000;font-family:Poppins,-apple-system,BlinkMacSystemFont,\"Segoe UI\",Roboto,Arial,sans-serif;-webkit-font-smoothing:antialiased;text-align:left}\n#rcm-root .rcm-backdrop{position:absolute;inset:0;background:rgba(0,18,22,.74);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);opacity:0;transition:opacity .35s ease}\n#rcm-root .rcm-card{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%) scale(.94);width:min(94vw,880px);max-height:94vh;overflow:auto;box-sizing:border-box;opacity:0;outline:none;border-radius:28px;background:linear-gradient(170deg,#8b7cf6 0%,#93b8f0 48%,#bfeee8 100%);box-shadow:0 40px 100px rgba(0,0,0,.65),inset 0 1px 0 rgba(255,255,255,.07);display:grid;grid-template-columns:minmax(0,42%) minmax(0,1fr);transition:opacity .35s ease,transform .5s cubic-bezier(.2,.9,.2,1.08)}\n#rcm-root.rcm-in .rcm-backdrop{opacity:1}\n#rcm-root.rcm-in .rcm-card{opacity:1;transform:translate(-50%,-50%) scale(1)}\n#rcm-root .rcm-x{position:absolute;top:12px;right:12px;z-index:6;width:36px;height:36px;margin:0;padding:0;border:0;border-radius:50%;background:rgba(16,35,58,.16);color:#10233a!important;font-size:22px;line-height:36px;text-align:center;cursor:pointer;transition:transform .2s ease,background .2s ease}\n#rcm-root .rcm-x:hover{background:rgba(255,255,255,.22);transform:rotate(90deg)}\n#rcm-root .rcm-cardwrap{position:absolute;left:0;right:0;top:0;bottom:54px;z-index:3;display:flex;align-items:center;justify-content:center;padding:26px}\n#rcm-root .rcm-hero{width:84%;max-width:360px;height:auto;border-radius:14px;box-shadow:0 26px 60px rgba(0,0,0,.5),0 2px 0 rgba(255,255,255,.18) inset;transform:rotate(-5deg);transition:opacity .28s ease,transform .45s cubic-bezier(.2,.9,.2,1)}\n#rcm-root .rcm-hero.is-swap{opacity:0;transform:rotate(-5deg) translateY(10px) scale(.96)}\n#rcm-root .rcm-cardcap{position:absolute;left:18px;right:18px;bottom:16px;z-index:4;margin:0;text-align:center;font-size:12.5px;letter-spacing:.08em;text-transform:uppercase;font-weight:600;color:#cfe3ff!important}\n#rcm-root .rcm-stage{position:relative;overflow:hidden;display:block;padding:0;min-height:440px;background:linear-gradient(180deg,#1b2a4a 0%,#16304a 55%,#0f2233 100%);touch-action:none;user-select:none;-webkit-user-select:none}\n#rcm-root .rcm-pitch{position:absolute;left:-30%;right:-30%;bottom:-8%;height:70%;z-index:1;background:repeating-linear-gradient(0deg,rgba(255,255,255,.09) 0 2px,rgba(255,255,255,0) 2px 40px),repeating-linear-gradient(90deg,rgba(255,255,255,.07) 0 2px,rgba(255,255,255,0) 2px 60px);transform:perspective(420px) rotateX(58deg);transform-origin:50% 100%;pointer-events:none}\n#rcm-root .rcm-pitch::after{content:\"\";position:absolute;left:50%;top:0;width:34%;padding-top:34%;margin-left:-17%;border:2px solid rgba(255,255,255,.12);border-radius:50%}\n#rcm-root .rcm-light{position:absolute;left:-40%;top:-30%;width:40%;height:160%;z-index:1;background:linear-gradient(90deg,rgba(255,255,255,0),rgba(255,255,255,.12),rgba(255,255,255,0));transform:skewX(-16deg);animation:rcmSweep 6s ease-in-out 1s infinite;pointer-events:none}\n#rcm-root .rcm-cta.is-pulse{animation:rcmPulseBtn 1.6s ease-in-out infinite}\n@keyframes rcmPulseBtn{0%,100%{box-shadow:0 12px 26px rgba(0,224,112,.4)}50%{box-shadow:0 12px 40px rgba(0,224,112,.75)}}\n@keyframes rcmHit{0%{transform:scale(1)}40%{transform:scale(1.35)}100%{transform:scale(1)}}\n@keyframes rcmMiss{0%,100%{transform:translateX(0)}20%{transform:translateX(-6px)}60%{transform:translateX(6px)}}\n#rcm-root .rcm-body{padding:30px 32px 26px;min-width:0;color:#10233a}\n#rcm-root .rcm-rise{opacity:0;transform:translateY(14px)}\n#rcm-root.rcm-in .rcm-rise{animation:rcmRise .55s cubic-bezier(.2,.9,.2,1) both}\n#rcm-root.rcm-in .rcm-rise:nth-child(1){animation-delay:.16s}#rcm-root.rcm-in .rcm-rise:nth-child(2){animation-delay:.22s}#rcm-root.rcm-in .rcm-rise:nth-child(3){animation-delay:.28s}#rcm-root.rcm-in .rcm-rise:nth-child(4){animation-delay:.34s}#rcm-root.rcm-in .rcm-rise:nth-child(5){animation-delay:.4s}#rcm-root.rcm-in .rcm-rise:nth-child(6){animation-delay:.46s}#rcm-root.rcm-in .rcm-rise:nth-child(7){animation-delay:.52s}#rcm-root.rcm-in .rcm-rise:nth-child(8){animation-delay:.58s}#rcm-root.rcm-in .rcm-rise:nth-child(9){animation-delay:.64s}\n#rcm-root .rcm-eyebrow{display:block;margin:0 0 10px;padding:0;background:none;color:#10233a!important;font-size:12.5px;font-weight:700;letter-spacing:.12em;text-transform:uppercase}\n#rcm-root .rcm-dot{display:none}\n#rcm-root .rcm-title{margin:0 0 8px;font-size:26px;line-height:1.15;font-weight:600;letter-spacing:-.01em;color:#10233a!important}\n#rcm-root .rcm-plats{display:flex;gap:8px;margin:0 0 14px;flex-wrap:wrap}\n#rcm-root .rcm-plat{display:inline-flex;align-items:center;gap:8px;margin:0;padding:12px 16px;border-radius:999px;border:1.5px solid rgba(16,35,58,.28);background:rgba(255,255,255,.34);color:#10233a!important;font-family:inherit;font-size:13.5px;font-weight:600;line-height:1;cursor:pointer;transition:transform .18s ease,background .18s ease,border-color .18s ease}\n#rcm-root .rcm-plat::before{content:\"\";width:10px;height:10px;border-radius:50%;background:currentColor;opacity:.9}\n#rcm-root .rcm-plat[data-platform=\"playstation\"]::before{background:#2e6bff}\n#rcm-root .rcm-plat[data-platform=\"xbox\"]::before{background:#3ec53e}\n#rcm-root .rcm-plat[data-platform=\"steam\"]::before{background:#66c0f4}\n#rcm-root .rcm-plat:hover,#rcm-root .rcm-plat:focus-visible{transform:translateY(-2px);border-color:rgba(255,255,255,.5)}\n#rcm-root .rcm-plat.is-on{background:#101820!important;border-color:#101820!important;color:#fff!important;box-shadow:0 10px 22px rgba(16,24,32,.32)}\n#rcm-root .rcm-sub{margin:0 0 18px;font-size:13.5px;line-height:1.45;color:#38506b!important}\n#rcm-root .rcm-pick{margin:0 0 10px;font-size:11px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:#38506b!important}\n#rcm-root .rcm-market{margin:0 0 10px;justify-content:center;font-size:12px;color:#38506b!important;display:flex;align-items:center;gap:8px;flex-wrap:wrap}\n#rcm-root .rcm-market .rcm-flag{display:inline;padding:0;border-radius:0;background:none;color:#38506b!important;font-weight:600;font-size:12.5px}\n#rcm-root .rcm-undo{background:none;border:0;padding:0;margin:0;color:#10233a!important;font-family:inherit;font-size:12px;font-weight:600;text-decoration:underline;text-underline-offset:3px;cursor:pointer}\n#rcm-root .rcm-actions{display:flex;flex-direction:column;align-items:stretch;margin:18px 0 12px}\n#rcm-root .rcm-cta{width:100%;box-sizing:border-box;position:relative;display:inline-flex;align-items:center;justify-content:center;overflow:hidden;background:#101820;color:#25e07a!important;text-decoration:none!important;font-weight:600;font-size:15px;line-height:1;padding:15px 24px;border-radius:999px;border:0;box-shadow:0 12px 26px rgba(16,24,32,.28);transition:transform .15s ease,box-shadow .15s ease;will-change:transform}\n#rcm-root .rcm-cta:hover,#rcm-root .rcm-cta:focus-visible{box-shadow:0 16px 32px rgba(0,224,112,.5);color:#00373d!important}\n\n#rcm-root .rcm-cta-text{color:#25e07a!important;display:inline-block}\n#rcm-root .rcm-cta-text.is-swap{animation:rcmSwap .38s cubic-bezier(.2,.9,.2,1.2)}\n#rcm-root .rcm-later{display:block;width:100%;margin-top:4px;text-align:center;align-self:center;background:none;border:0;margin:0;padding:8px 4px;color:#38506b!important;font-family:inherit;font-size:14px;font-weight:500;cursor:pointer;text-decoration:underline;text-underline-offset:3px;box-shadow:none}\n#rcm-root .rcm-later:hover{color:#10233a!important}\nhtml.rcm-lock{overflow:hidden}\n@keyframes rcmRise{from{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}\n@keyframes rcmSwap{0%{opacity:0;transform:translateY(8px) scale(.96)}100%{opacity:1;transform:none}}\n@keyframes rcmFloat{0%,100%{transform:translateY(0)}50%{transform:translateY(-8px)}}\n@keyframes rcmDrop{0%{opacity:0;transform:translateY(-50px) scale(.9)}100%{opacity:1;transform:none}}\n@keyframes rcmSweep{0%{left:-45%}55%,100%{left:125%}}\n@keyframes rcmPulse{0%,100%{transform:scale(1);opacity:1}50%{transform:scale(1.5);opacity:.55}}\n}\n}\n@keyframes rcmBump{0%{transform:scale(1)}40%{transform:scale(1.06) rotate(-2deg)}100%{transform:scale(1)}}\n@keyframes rcmSpark{0%{opacity:1;transform:translate(0,0) scale(1)}100%{opacity:0;transform:translate(var(--dx),var(--dy)) scale(.2)}}\n@media (max-width:719px){\n#rcm-root .rcm-card{grid-template-columns:1fr;width:min(94vw,440px);border-radius:22px}\n#rcm-root .rcm-stage{min-height:200px}\n#rcm-root .rcm-cardwrap{bottom:44px;padding:16px}\n#rcm-root .rcm-hero{width:76%;max-width:260px}\n#rcm-root .rcm-cardcap{bottom:12px;font-size:11.5px}\n#rcm-root .rcm-glow{top:50%}\n#rcm-root .rcm-body{padding:16px 18px 16px}\n#rcm-root .rcm-eyebrow{margin-bottom:8px}\n#rcm-root .rcm-title{font-size:20px;margin-bottom:6px}\n#rcm-root .rcm-sub{font-size:12.5px;margin-bottom:12px}\n#rcm-root .rcm-plats{gap:6px;margin-bottom:10px;flex-wrap:nowrap}\n#rcm-root .rcm-plat{padding:8px 8px;font-size:12px;gap:6px;flex:1;justify-content:center;white-space:nowrap}\n#rcm-root .rcm-market{margin-bottom:12px}\n#rcm-root .rcm-market-text{display:none}\n#rcm-root .rcm-actions{margin:14px 0 10px}\n#rcm-root .rcm-actions{flex-direction:column;align-items:stretch;gap:6px}\n#rcm-root .rcm-cta{width:100%;box-sizing:border-box}\n}\n@media (prefers-reduced-motion:reduce){#rcm-root *,#rcm-root *::before,#rcm-root *::after{animation:none!important;transition:none!important}#rcm-root .rcm-rise{opacity:1;transform:none}}\n<\/style>\n<div id=\"rcm-root\" style=\"display:none\" role=\"dialog\" aria-modal=\"true\" aria-labelledby=\"rcm-title\">\n  <div class=\"rcm-backdrop\" data-rcm-close=\"1\"><\/div>\n  <div class=\"rcm-card\" tabindex=\"-1\">\n    <button type=\"button\" class=\"rcm-x\" data-rcm-close=\"1\" aria-label=\"Close\">\u00d7<\/button>\n    <div class=\"rcm-stage\">\n      <span class=\"rcm-glow\"><\/span><span class=\"rcm-pitch\"><\/span><span class=\"rcm-light\"><\/span>\n      <div class=\"rcm-cardwrap\">\n        <img loading=\"lazy\" class=\"rcm-hero\" src=\"https:\/\/creativegroup-blog-prd-eu-west-1-recharge-blog.s3.eu-west-1.amazonaws.com\/blog\/wp-content\/uploads\/2026\/09\/16135154\/playstation-gift-card-800.webp\" alt=\"PlayStation Store gift card\" width=\"800\" height=\"500\" decoding=\"async\">\n      <\/div>\n      <p class=\"rcm-cardcap\"><span class=\"rcm-cardcap-t\">PlayStation Store<\/span><\/p>\n    <\/div>\n    <div class=\"rcm-body\">\n      <p class=\"rcm-eyebrow rcm-rise\"><span class=\"rcm-dot\"><\/span><span class=\"rcm-eyebrow-dyn\">FC 27 kick-off<\/span><\/p>\n      <p class=\"rcm-title rcm-rise\" id=\"rcm-title\">FC 27 is nearly here. Fund the squad.<\/p>\n      <p class=\"rcm-sub rcm-rise\">Instant delivery \u00b7 code by email<\/p>\n      <p class=\"rcm-pick rcm-rise\">Where do you play?<\/p>\n      <div class=\"rcm-plats rcm-rise\" role=\"radiogroup\" aria-label=\"Platform\">\n        <button type=\"button\" class=\"rcm-plat is-on\" role=\"radio\" aria-checked=\"true\" data-platform=\"playstation\" data-label=\"PlayStation\" data-cta=\"pl_ps\" data-slug=\"playstation-store\" data-color=\"#2e6bff\">PlayStation<\/button>\n        <button type=\"button\" class=\"rcm-plat\" role=\"radio\" aria-checked=\"false\" data-platform=\"xbox\" data-label=\"Xbox\" data-cta=\"pl_xb\" data-slug=\"xbox-gift-card\" data-color=\"#3ec53e\">Xbox<\/button>\n        <button type=\"button\" class=\"rcm-plat\" role=\"radio\" aria-checked=\"false\" data-platform=\"steam\" data-label=\"PC \u00b7 Steam\" data-cta=\"pl_st\" data-slug=\"paysafecard-players-pass-steam\" data-color=\"#66c0f4\">PC \u00b7 Steam<\/button>\n      <\/div>\n      <div class=\"rcm-actions rcm-rise\">\n        <a class=\"rcm-cta\" href=\"https:\/\/www.recharge.com\/en\/gb\/playstation-store\"><span class=\"rcm-cta-text\">Get PlayStation Store credit<\/span><\/a>\n      <\/div>\n      <p class=\"rcm-market rcm-rise\"><span class=\"rcm-flag\">UK store \u00b7 \u00a3<\/span><span class=\"rcm-market-text\"><\/span><button type=\"button\" class=\"rcm-undo\" hidden><\/button><\/p>\n      <button type=\"button\" class=\"rcm-later\" data-rcm-close=\"1\">Not now<\/button>\n    <\/div>\n  <\/div>\n<\/div>\n<script>\n(function () {\n  if (window.__rcmFc27) { return; }\n  window.__rcmFc27 = true;\n  var AMP = String.fromCharCode(38);\n  var CFG = {\n    key: 'rcm_fc27_kit',\n    mobileSeconds: 5,\n    desktopFallbackSeconds: 5,\n    hideDays: 0,\n    hideDaysAfterClick: 0,\n    launch: '2026-09-25T00:00:00',\n    earlyConsole: '2026-09-18T00:00:00',\n    earlyPC: '2026-09-17T23:00:00Z',\n    launchText: 'Ultimate editions first. Full launch Friday 25 September',\n    blogLocale: '',\n    utm: 'utm_source=blog' + AMP + 'utm_medium=popup' + AMP + 'utm_campaign=fc27_kickoff'\n  };\n  var o = window.rcPopOverrides || {};\n  for (var k in o) { if (o.hasOwnProperty(k)) { CFG[k] = o[k]; } }\n\n  var root = document.getElementById('rcm-root');\n  if (!root) { return; }\n  var q = function (s) { return root.querySelector(s); };\n  var card = q('.rcm-card'), cta = q('.rcm-cta'), ctaText = q('.rcm-cta-text'), plats = root.querySelectorAll('.rcm-plat');\n  var stage = q('.rcm-stage'), hero = q('.rcm-hero'), glow = q('.rcm-glow'), cardCap = q('.rcm-cardcap-t');\n  var eyebrow = q('.rcm-eyebrow-dyn'), title = q('#rcm-title');\n  var flag = q('.rcm-flag'), marketText = q('.rcm-market-text'), undo = q('.rcm-undo');\n  var closers = root.querySelectorAll('[data-rcm-close]');\n  var shown = false, open = false, waiting = false, how = '', timer = 0, last = {};\n  var reduce = window.matchMedia('(prefers-reduced-motion: reduce)').matches;\n  var isTouch = window.matchMedia('(hover: none), (pointer: coarse)').matches;\n  if (!isTouch) { if (navigator.maxTouchPoints > 0) { if (window.innerWidth < 900) { isTouch = true; } } }\n  document.body.appendChild(root);\n\n  var CARDCAP = { playstation: 'PlayStation Store', xbox: 'Xbox', steam: 'paysafecard Players Pass' };\n  var IMGS = {\"playstation\": \"https:\/\/creativegroup-blog-prd-eu-west-1-recharge-blog.s3.eu-west-1.amazonaws.com\/blog\/wp-content\/uploads\/2026\/09\/16135154\/playstation-gift-card-800.webp\", \"xbox\": \"https:\/\/creativegroup-blog-prd-eu-west-1-recharge-blog.s3.eu-west-1.amazonaws.com\/blog\/wp-content\/uploads\/2026\/09\/16135157\/xbox-gift-card-800.webp\", \"steam\": \"https:\/\/creativegroup-blog-prd-eu-west-1-recharge-blog.s3.eu-west-1.amazonaws.com\/blog\/wp-content\/uploads\/2026\/09\/16115354\/paysafecard-players-pass-steam-card.webp\"};\n  var STORES = { en: ['us','gb','ca','au','ie','nz','in','za','ae','sg','nl','de','be','at','ch','se','no','dk','fi','pl'], de: ['de','at','ch'], fr: ['fr'], nl: ['nl'], es: ['es'], it: ['it'], pl: ['pl'], pt: ['pt'] };\n  var DEFAULT_CC = { en: 'gb', de: 'de', fr: 'fr', nl: 'nl', es: 'es', it: 'it', pl: 'pl', pt: 'pt' };\n  var LABEL = { us: 'US store \u00b7 $', gb: 'UK store \u00b7 \u00a3', ca: 'Canada store \u00b7 $', au: 'Australia store \u00b7 $', ie: 'Ireland store \u00b7 \u20ac', nz: 'New Zealand store \u00b7 $', in: 'India store \u00b7 \u20b9', za: 'South Africa store \u00b7 R', ae: 'UAE store \u00b7 AED', sg: 'Singapore store \u00b7 $', nl: 'Netherlands store \u00b7 \u20ac', de: 'Germany store \u00b7 \u20ac', be: 'Belgium store \u00b7 \u20ac', at: 'Austria store \u00b7 \u20ac', ch: 'Switzerland store \u00b7 CHF', se: 'Sweden store \u00b7 kr', no: 'Norway store \u00b7 kr', dk: 'Denmark store \u00b7 kr', fi: 'Finland store \u00b7 \u20ac', pl: 'Poland store \u00b7 z\u0142', fr: 'France store \u00b7 \u20ac', es: 'Spain store \u00b7 \u20ac', it: 'Italy store \u00b7 \u20ac', pt: 'Portugal store \u00b7 \u20ac' };\n  var TZ = { 'America\/New_York': 'us', 'America\/Chicago': 'us', 'America\/Denver': 'us', 'America\/Los_Angeles': 'us', 'America\/Phoenix': 'us', 'America\/Anchorage': 'us', 'Pacific\/Honolulu': 'us', 'America\/Detroit': 'us', 'America\/Toronto': 'ca', 'America\/Vancouver': 'ca', 'America\/Edmonton': 'ca', 'America\/Winnipeg': 'ca', 'America\/Halifax': 'ca', 'Europe\/London': 'gb', 'Europe\/Dublin': 'ie', 'Australia\/Sydney': 'au', 'Australia\/Melbourne': 'au', 'Australia\/Brisbane': 'au', 'Australia\/Perth': 'au', 'Australia\/Adelaide': 'au', 'Pacific\/Auckland': 'nz', 'Asia\/Kolkata': 'in', 'Africa\/Johannesburg': 'za', 'Asia\/Dubai': 'ae', 'Asia\/Singapore': 'sg', 'Europe\/Amsterdam': 'nl', 'Europe\/Berlin': 'de', 'Europe\/Brussels': 'be', 'Europe\/Vienna': 'at', 'Europe\/Zurich': 'ch', 'Europe\/Stockholm': 'se', 'Europe\/Oslo': 'no', 'Europe\/Copenhagen': 'dk', 'Europe\/Helsinki': 'fi', 'Europe\/Warsaw': 'pl', 'Europe\/Paris': 'fr', 'Europe\/Madrid': 'es', 'Europe\/Rome': 'it', 'Europe\/Lisbon': 'pt' };\n  var STRINGS = {\n    en: { eyebrow: 'EA SPORTS FC 27 is live!', sub: 'Instant delivery \u00b7 code by email', pick: 'Where do you play?', cta1: 'Top up now', back: 'Welcome back', outNow: 'FC 27 is out now', liveTitle: 'FC 27 is live. Top up and play.', later: 'Not now', close: 'Close', undo: 'Use the {store} store instead', title: 'Top up any gaming wallet instantly', cta: { playstation: 'Get PlayStation Store credit', xbox: 'Get Xbox credit', steam: 'Get Steam credit' }, titles: [['player-lists', 'Shortlist done. Fund the squad.'], ['player-stats', 'Ratings checked. Fund the squad.'], ['ratings-database', 'Ratings checked. Fund the squad.'], ['squad-builder', 'Dream XI built. Now fund it.'], ['pack-opener', 'Packs simulated. Now open real ones.'], ['wonderkids', 'Wonderkids found. Fund the squad.'], ['icons', 'Icons scouted. Fund the squad.'], ['editions', 'Edition picked. Fund it before kick-off.'], ['pc-requirements', 'PC ready? Fund your Steam wallet.'], ['keyboard', 'Controls sorted. Fund your Steam wallet.'], ['closed-beta', 'Gameplay studied. Fund the squad.'], ['comparison', 'Debate settled. Fund the squad.'], ['upgrades', 'Upgrades noted. Fund the squad.']] },\n    de: { eyebrow: 'EA SPORTS FC 27 ist live!', sub: 'Sofortige Lieferung \u00b7 Code per E-Mail', pick: 'Wo spielst du?', cta1: 'Jetzt aufladen', back: 'Willkommen zur\u00fcck', outNow: 'FC 27 ist da', liveTitle: 'FC 27 ist live. Aufladen und spielen.', later: 'Sp\u00e4ter', close: 'Schlie\u00dfen', undo: 'Lieber den Store {store}', title: 'Lade jedes Gaming-Guthaben sofort auf', cta: { playstation: 'PlayStation Store Guthaben', xbox: 'Xbox Guthaben', steam: 'Steam Guthaben' }, titles: [['kader-builder', 'Startelf steht. Jetzt Guthaben holen.'], ['spielerbewertungen', 'Ratings gepr\u00fcft. Jetzt Guthaben holen.'], ['pack-opener', 'Packs simuliert. Jetzt echte \u00f6ffnen.'], ['wonderkids', 'Talente gefunden. Jetzt Guthaben holen.'], ['icons', 'Icons gescoutet. Jetzt Guthaben holen.'], ['spielervergleich', 'Vergleich erledigt. Jetzt Guthaben holen.'], ['abwertungen', 'Auf- und Abwertungen gepr\u00fcft. Jetzt Guthaben holen.']] },\n    es: { eyebrow: '\u00a1EA SPORTS FC 27 ya est\u00e1 aqu\u00ed!', sub: 'Entrega inmediata \u00b7 c\u00f3digo por correo', pick: '\u00bfD\u00f3nde juegas?', cta1: 'Recargar ahora', back: 'Bienvenido de nuevo', outNow: 'FC 27 ya est\u00e1 disponible', liveTitle: 'FC 27 ya est\u00e1 aqu\u00ed. Recarga y juega.', later: 'Ahora no', close: 'Cerrar', undo: 'Usar la tienda de {store}', title: 'Recarga cualquier saldo de juego al instante', cta: { playstation: 'Saldo para PlayStation Store', xbox: 'Saldo para Xbox', steam: 'Saldo para Steam' }, titles: [['creador-de-plantillas', 'Once ideal listo. Ahora rec\u00e1rgalo.'], ['base-de-datos-valoraciones', 'Valoraciones vistas. Recarga tu saldo.'], ['simulador-de-sobres', 'Sobres simulados. Abre los de verdad.'], ['perlas', 'Perlas encontradas. Recarga tu saldo.'], ['iconos', 'Iconos fichados. Recarga tu saldo.'], ['comparador', 'Debate resuelto. Recarga tu saldo.'], ['rastreador', 'Subidas y bajadas vistas. Recarga tu saldo.']] },\n    it: { eyebrow: 'EA SPORTS FC 27 \u00e8 live!', sub: 'Consegna immediata \u00b7 codice via email', pick: 'Dove giochi?', cta1: 'Ricarica ora', back: 'Bentornato', outNow: 'FC 27 \u00e8 disponibile', liveTitle: 'FC 27 \u00e8 qui. Ricarica e gioca.', later: 'Non ora', close: 'Chiudi', undo: 'Usa lo store {store}', title: 'Ricarica subito qualsiasi credito di gioco', cta: { playstation: 'Credito PlayStation Store', xbox: 'Credito Xbox', steam: 'Credito Steam' }, titles: [['costruttore-rosa', 'Undici pronto. Ora ricarica.'], ['database-valutazioni', 'Valutazioni viste. Ricarica il credito.'], ['simulatore', 'Pacchetti simulati. Ora aprine di veri.'], ['wonderkids', 'Talenti trovati. Ricarica il credito.'], ['icone', 'Icone scoutate. Ricarica il credito.'], ['confronto', 'Dibattito chiuso. Ricarica il credito.'], ['tracker', 'Cambi di valutazione visti. Ricarica il credito.']] },\n    pl: { eyebrow: 'EA SPORTS FC 27 jest ju\u017c dost\u0119pne!', sub: 'Natychmiastowa dostawa \u00b7 kod e-mailem', pick: 'Gdzie grasz?', cta1: 'Do\u0142aduj teraz', back: 'Witaj ponownie', outNow: 'FC 27 jest ju\u017c dost\u0119pne', liveTitle: 'FC 27 jest ju\u017c dost\u0119pne. Do\u0142aduj i graj.', later: 'Nie teraz', close: 'Zamknij', undo: 'U\u017cyj sklepu {store}', title: 'Do\u0142aduj dowolny portfel gamingowy od razu', cta: { playstation: 'Do\u0142aduj PlayStation Store', xbox: 'Do\u0142aduj Xbox', steam: 'Do\u0142aduj Steam' }, titles: [['kreator-skladu', 'Sk\u0142ad gotowy. Teraz do\u0142aduj.'], ['baza-ocen', 'Oceny sprawdzone. Do\u0142aduj \u015brodki.'], ['symulator', 'Paczki przetestowane. Otw\u00f3rz prawdziwe.'], ['mlode-talenty', 'Talenty znalezione. Do\u0142aduj \u015brodki.'], ['ikony', 'Ikony wypatrzone. Do\u0142aduj \u015brodki.'], ['porownywania', 'Sp\u00f3r rozstrzygni\u0119ty. Do\u0142aduj \u015brodki.'], ['podwyzek', 'Zmiany ocen sprawdzone. Do\u0142aduj \u015brodki.']] },\n    pt: { eyebrow: 'EA SPORTS FC 27 j\u00e1 est\u00e1 live!', sub: 'Entrega imediata \u00b7 c\u00f3digo por email', pick: 'Onde jogas?', cta1: 'Carregar agora', back: 'Bem-vindo de volta', outNow: 'FC 27 j\u00e1 saiu', liveTitle: 'FC 27 j\u00e1 est\u00e1 dispon\u00edvel. Carrega e joga.', later: 'Agora n\u00e3o', close: 'Fechar', undo: 'Usar a loja {store}', title: 'Carrega qualquer carteira de jogo ao instante', cta: { playstation: 'Saldo PlayStation Store', xbox: 'Saldo Xbox', steam: 'Saldo Steam' }, titles: [['criador-de-plantel', 'Onze pronto. Agora carrega.'], ['base-de-dados-avaliacoes', 'Avalia\u00e7\u00f5es vistas. Carrega o saldo.'], ['simulador', 'Packs simulados. Abre os verdadeiros.'], ['jovens-promessas', 'Promessas encontradas. Carrega o saldo.'], ['icons', '\u00cdcones observados. Carrega o saldo.'], ['comparador', 'Debate resolvido. Carrega o saldo.'], ['subidas', 'Subidas e descidas vistas. Carrega o saldo.']] }\n  };\n  var docLang = (document.documentElement.getAttribute('lang') || 'en').toLowerCase().slice(0, 2);\n  var T = STRINGS[docLang] || STRINGS.en;\n\n  function setDaysLeft() {\n    var now = Date.now(), launch = new Date(CFG.launch).getTime();\n    daysLeft = Math.max(0, Math.ceil((launch - now) \/ 864e5));\n    \n  }\n\n  function store(k, v) { try { if (v === null) { localStorage.removeItem(k); } else { localStorage.setItem(k, v); } } catch (e) {} }\n  function read(k) { try { return localStorage.getItem(k) || ''; } catch (e) { return ''; } }\n  function hiddenUntil() { return parseInt(read(CFG.key) || '0', 10); }\n\n  var blog = CFG.blogLocale || (function () { var m = location.pathname.match(\/\\\/blog\\\/([a-z]{2})(?:-([a-z]{2}))?\\\/\/i); return m ? (m[1] + (m[2] ? '-' + m[2] : '')).toLowerCase() : 'en-gb'; })();\n  var lang = blog.split('-')[0]; if (!STORES[lang]) { lang = 'en'; }\n  var blogCC = blog.split('-')[1] || DEFAULT_CC[lang];\n  if (STORES[lang].indexOf(blogCC) === -1) { blogCC = DEFAULT_CC[lang]; }\n  function detectCC() {\n    var saved = read('rcm_kit_market'); if (saved) { if (STORES[lang].indexOf(saved) !== -1) { return saved; } }\n    try { var tz = Intl.DateTimeFormat().resolvedOptions().timeZone; if (TZ[tz]) { if (STORES[lang].indexOf(TZ[tz]) !== -1) { return TZ[tz]; } } } catch (e) {}\n    var nl = (navigator.language || '').toLowerCase(), region = nl.split('-')[1] || '';\n    if (region) { if (STORES[lang].indexOf(region) !== -1) { return region; } }\n    return blogCC;\n  }\n  var cc = detectCC(), platform = '', platLabel = '', slug = '', daysLeft = 0;\n\n  function hrefFor() { return 'https:\/\/www.recharge.com\/' + lang + '\/' + cc + '\/' + slug + '?' + CFG.utm + AMP + 'utm_content=' + platform + '_' + cc; }\n  function track(ev, extra) {\n    window.dataLayer = window.dataLayer || [];\n    var d = { event: ev, popup_id: CFG.key, popup_page: location.pathname, popup_trigger: how, popup_platform: platform, popup_market: cc, popup_days_left: daysLeft };\n    if (extra) { for (var kk in extra) { if (extra.hasOwnProperty(kk)) { d[kk] = extra[kk]; } } }\n    window.dataLayer.push(d);\n  }\n  function renderMarket() {\n    flag.textContent = LABEL[cc] || (cc.toUpperCase() + ' store');\n    if (cc !== blogCC) {\n      marketText.textContent = 'Region-locked codes, so we picked the ' + (LABEL[cc] || cc.toUpperCase()).split(' \u00b7')[0] + '.';\n      undo.hidden = false; undo.textContent = 'Use the ' + (LABEL[blogCC] || blogCC.toUpperCase()).split(' \u00b7')[0] + ' instead';\n    } else {\n      marketText.textContent = 'Region-locked codes, matched to your account.';\n      undo.hidden = true;\n    }\n    cta.href = hrefFor();\n  }\n  undo.addEventListener('click', function () { cc = blogCC; store('rcm_kit_market', cc); renderMarket(); track('rc_popup_market'); });\n\n  function setPlatform(p, silent) {\n    var _ctaMap = { pl_ps: T.cta1, pl_xb: T.cta1, pl_st: T.cta1 };\n    var btn = null;\n    for (var i = 0; i < plats.length; i++) {\n      var on = plats[i].getAttribute('data-platform') === p;\n      plats[i].className = on ? 'rcm-plat is-on' : 'rcm-plat'; plats[i].setAttribute('aria-checked', on ? 'true' : 'false');\n      if (on) { btn = plats[i]; }\n    }\n    if (!btn) { return; }\n    platform = p; platLabel = btn.getAttribute('data-label'); slug = btn.getAttribute('data-slug');\n    if (!silent) { ctaText.className = 'rcm-cta-text'; void ctaText.offsetWidth; }\n    ctaText.textContent = (_ctaMap[btn.getAttribute('data-cta')] || btn.getAttribute('data-cta'));\n    if (!silent) { ctaText.className = 'rcm-cta-text is-swap'; }\n    cta.href = hrefFor();\n    var col = btn.getAttribute('data-color');\n    glow.style.background = 'radial-gradient(closest-side,' + col + '8c,rgba(0,0,0,0))';\n    if (IMGS[p]) { if (hero.getAttribute('src') !== IMGS[p]) {\n      if (silent) { hero.src = IMGS[p]; hero.alt = platLabel + ' card'; }\n      else { hero.className = 'rcm-hero is-swap';\n        setTimeout(function () { hero.src = IMGS[p]; hero.alt = platLabel + ' card'; hero.className = 'rcm-hero'; }, 200); } } }\n    if (cardCap) { cardCap.textContent = CARDCAP[p] || platLabel; }\n    if (!silent) { store('rcm_kit_platform', p); track('rc_popup_platform'); }\n  }\n  for (var b = 0; b < plats.length; b++) { plats[b].addEventListener('click', function () { setPlatform(this.getAttribute('data-platform'), false); }); }\n\n  function bannerOpen() {\n    var ids = ['CybotCookiebotDialog', 'onetrust-banner-sdk', 'usercentrics-root', 'cookie-law-info-bar', 'cmpbox'];\n    for (var i = 0; i < ids.length; i++) { var el = document.getElementById(ids[i]); if (el) { if (el.getBoundingClientRect().height > 0) { if (getComputedStyle(el).visibility !== 'hidden') { return true; } } } }\n    return false;\n  }\n  function focusables() {\n    var all = root.querySelectorAll('button, a[href]'), f = [];\n    for (var i = 0; i < all.length; i++) { if (!all[i].hidden) { if (all[i].getBoundingClientRect().width > 0) { f.push(all[i]); } } }\n    return f;\n  }\n  function onKey(e) {\n    if (e.key === 'Escape') { track('rc_popup_close'); close(CFG.hideDays); return; }\n    if (e.key === 'Tab') {\n      var f = focusables(), first = f[0], lastEl = f[f.length - 1];\n      if (e.shiftKey) { if (document.activeElement === first || document.activeElement === card) { e.preventDefault(); lastEl.focus(); } }\n      else { if (document.activeElement === lastEl) { e.preventDefault(); first.focus(); } }\n    }\n  }\n  var actions = q('.rcm-actions');\n  if (!reduce) {\n    actions.addEventListener('pointermove', function (e) {\n      var r = cta.getBoundingClientRect(), dx = e.clientX - (r.left + r.width \/ 2), dy = e.clientY - (r.top + r.height \/ 2);\n      if (Math.sqrt(dx * dx + dy * dy) < 110) { cta.style.transform = 'translate(' + (dx * 0.16).toFixed(1) + 'px,' + (dy * 0.26).toFixed(1) + 'px)'; } else { cta.style.transform = ''; }\n    }, { passive: true });\n    actions.addEventListener('pointerleave', function () { cta.style.transform = ''; });\n  }\n  function show() {\n    shown = true; open = true;\n    root.style.display = ''; void root.offsetWidth; root.className = 'rcm-in';\n    document.documentElement.classList.add('rcm-lock');\n    document.addEventListener('keydown', onKey);\n    setTimeout(function () { card.focus(); }, 60);\n    track('rc_popup_view', { popup_returning: !!read('rcm_kit_platform') });\n  }\n  function close(days) {\n    if (!open) { return; }\n    open = false; store(CFG.key, String(Date.now() + days * 864e5));\n    document.removeEventListener('keydown', onKey); document.documentElement.classList.remove('rcm-lock');\n    root.className = ''; setTimeout(function () { root.style.display = 'none'; }, 360);\n  }\n  function trigger(source) {\n    if (shown) { return; }\n    if (bannerOpen()) { if (!waiting) { waiting = true; setTimeout(function () { waiting = false; trigger(source); }, 1000); } return; }\n    how = source; show();\n  }\n  for (var c = 0; c < closers.length; c++) { closers[c].addEventListener('click', function () { track('rc_popup_close'); close(CFG.hideDays); }); }\n  cta.addEventListener('click', function () { track('rc_popup_click'); close(CFG.hideDaysAfterClick); });\n\n  \/\/ personalisation: page-aware title, remembered platform + name, market\n  title.textContent = T.title;\n  q('.rcm-sub').textContent = T.sub;\n  q('.rcm-pick').textContent = T.pick;\n  eyebrow.textContent = T.eyebrow;\n  q('.rcm-later').textContent = T.later;\n  q('.rcm-x').setAttribute('aria-label', T.close);\n  var path = location.pathname.toLowerCase();\n  var savedPlatform = read('rcm_kit_platform');\n  var guess = (path.indexOf('pc-requirements') !== -1 || path.indexOf('keyboard') !== -1) ? 'steam' : 'playstation';\n  setPlatform(savedPlatform || guess, true);\n  renderMarket();\n  setDaysLeft();\n\n  if (CFG.hideDays > 0 || CFG.hideDaysAfterClick > 0) { if (hiddenUntil() > Date.now()) { return; } } else { store(CFG.key, null); }\n  if (isTouch) { setTimeout(function () { trigger('timer'); }, CFG.mobileSeconds * 1000); }\n  else {\n    document.addEventListener('mouseout', function (e) { if (e.relatedTarget) { return; } if (e.clientY > 10) { return; } trigger('exit'); });\n    if (CFG.desktopFallbackSeconds > 0) { setTimeout(function () { trigger('timer'); }, CFG.desktopFallbackSeconds * 1000); }\n  }\n})();\n<\/script>\n","protected":false},"excerpt":{"rendered":"<p>Pick a formation, fill all eleven positions from the full ratings database and watch team rating and estimated chemistry update live. Free, no sign-up, works on your phone.<\/p>\n","protected":false},"author":49,"featured_media":50696,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"cos_headline_score":0,"cos_seo_score":0,"cos_headline_text":"","cos_headline_has_been_analyzed":false,"cos_last_analyzed_headline":[],"_hreflang_tags":"","footnotes":"","jetpack_publicize_message":"","jetpack_is_tweetstorm":false,"jetpack_publicize_feature_enabled":true,"jetpack_social_post_already_shared":true,"jetpack_social_options":{"image_generator_settings":{"template":"highway","enabled":false}}},"categories":[23],"tags":[],"class_list":["post-50438","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-digital-lifestyle-old"],"jetpack_publicize_connections":[],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v20.4 (Yoast SEO v21.0) - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>FC 27 Squad Builder: Create Your Dream XI<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.recharge.com\/blog\/en-gb\/fc-27-squad-builder\" \/>\n<meta property=\"og:locale\" content=\"en_GB\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"FC 27 Squad Builder: Create Your Dream XI\" \/>\n<meta property=\"og:description\" content=\"Pick a formation, fill all eleven positions from the full ratings database and watch team rating and estimated chemistry update live. Free, no sign-up, works on your phone.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.recharge.com\/blog\/en-gb\/fc-27-squad-builder\" \/>\n<meta property=\"og:site_name\" content=\"Recharge Blog\" \/>\n<meta property=\"article:published_time\" content=\"2026-09-02T14:17:51+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2026-09-21T12:29:00+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/creativegroup-blog-prd-eu-west-1-recharge-blog.s3.eu-west-1.amazonaws.com\/blog\/wp-content\/uploads\/2026\/09\/02170733\/fc27-squad-builder-hero.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"1500\" \/>\n\t<meta property=\"og:image:height\" content=\"1000\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"Conor Byrne\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.recharge.com\/blog\/en-gb\/fc-27-squad-builder\",\"url\":\"https:\/\/www.recharge.com\/blog\/en-gb\/fc-27-squad-builder\",\"name\":\"FC 27 Squad Builder: Create Your Dream XI\",\"isPartOf\":{\"@id\":\"https:\/\/www.recharge.com\/blog\/en-gb\/#website\"},\"datePublished\":\"2026-09-02T14:17:51+00:00\",\"dateModified\":\"2026-09-21T12:29:00+00:00\",\"author\":{\"@id\":\"https:\/\/www.recharge.com\/blog\/en-gb\/#\/schema\/person\/857508b94164c3cdc1f206b5c30d31a6\"},\"breadcrumb\":{\"@id\":\"https:\/\/www.recharge.com\/blog\/en-gb\/fc-27-squad-builder#breadcrumb\"},\"inLanguage\":\"en-GB\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.recharge.com\/blog\/en-gb\/fc-27-squad-builder\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.recharge.com\/blog\/en-gb\/fc-27-squad-builder#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.recharge.com\/blog\/en-gb\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"FC 27 Squad Builder: Create Your Dream XI\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.recharge.com\/blog\/en-gb\/#website\",\"url\":\"https:\/\/www.recharge.com\/blog\/en-gb\/\",\"name\":\"Recharge Blog\",\"description\":\"Everything about online safety, smart spending &amp; your digital lifestyle.\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/www.recharge.com\/blog\/en-gb\/?s={search_term_string}\"},\"query-input\":\"required name=search_term_string\"}],\"inLanguage\":\"en-GB\"},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.recharge.com\/blog\/en-gb\/#\/schema\/person\/857508b94164c3cdc1f206b5c30d31a6\",\"name\":\"Conor Byrne\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-GB\",\"@id\":\"https:\/\/www.recharge.com\/blog\/en-gb\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/624bd2d0a75e67e81c16920493bcda346cb5cfd0f77cfdff3a72413de0254eeb?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/624bd2d0a75e67e81c16920493bcda346cb5cfd0f77cfdff3a72413de0254eeb?s=96&d=mm&r=g\",\"caption\":\"Conor Byrne\"},\"description\":\"My passion for the e-commerce and fintech space started years ago with my first gaming console, giving me firsthand experience with the world of digital credit and top-ups. As a blog copywriter here at Recharge.com, I now get to use that insight to create clear, helpful content that makes navigating gift cards and online payments a breeze for our community.\",\"url\":\"https:\/\/www.recharge.com\/blog\/en-gb\/author\/conor-byrne\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"FC 27 Squad Builder: Create Your Dream XI","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.recharge.com\/blog\/en-gb\/fc-27-squad-builder","og_locale":"en_GB","og_type":"article","og_title":"FC 27 Squad Builder: Create Your Dream XI","og_description":"Pick a formation, fill all eleven positions from the full ratings database and watch team rating and estimated chemistry update live. Free, no sign-up, works on your phone.","og_url":"https:\/\/www.recharge.com\/blog\/en-gb\/fc-27-squad-builder","og_site_name":"Recharge Blog","article_published_time":"2026-09-02T14:17:51+00:00","article_modified_time":"2026-09-21T12:29:00+00:00","og_image":[{"width":1500,"height":1000,"url":"https:\/\/creativegroup-blog-prd-eu-west-1-recharge-blog.s3.eu-west-1.amazonaws.com\/blog\/wp-content\/uploads\/2026\/09\/02170733\/fc27-squad-builder-hero.jpg","type":"image\/jpeg"}],"author":"Conor Byrne","twitter_card":"summary_large_image","schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/www.recharge.com\/blog\/en-gb\/fc-27-squad-builder","url":"https:\/\/www.recharge.com\/blog\/en-gb\/fc-27-squad-builder","name":"FC 27 Squad Builder: Create Your Dream XI","isPartOf":{"@id":"https:\/\/www.recharge.com\/blog\/en-gb\/#website"},"datePublished":"2026-09-02T14:17:51+00:00","dateModified":"2026-09-21T12:29:00+00:00","author":{"@id":"https:\/\/www.recharge.com\/blog\/en-gb\/#\/schema\/person\/857508b94164c3cdc1f206b5c30d31a6"},"breadcrumb":{"@id":"https:\/\/www.recharge.com\/blog\/en-gb\/fc-27-squad-builder#breadcrumb"},"inLanguage":"en-GB","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.recharge.com\/blog\/en-gb\/fc-27-squad-builder"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/www.recharge.com\/blog\/en-gb\/fc-27-squad-builder#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.recharge.com\/blog\/en-gb"},{"@type":"ListItem","position":2,"name":"FC 27 Squad Builder: Create Your Dream XI"}]},{"@type":"WebSite","@id":"https:\/\/www.recharge.com\/blog\/en-gb\/#website","url":"https:\/\/www.recharge.com\/blog\/en-gb\/","name":"Recharge Blog","description":"Everything about online safety, smart spending &amp; your digital lifestyle.","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.recharge.com\/blog\/en-gb\/?s={search_term_string}"},"query-input":"required name=search_term_string"}],"inLanguage":"en-GB"},{"@type":"Person","@id":"https:\/\/www.recharge.com\/blog\/en-gb\/#\/schema\/person\/857508b94164c3cdc1f206b5c30d31a6","name":"Conor Byrne","image":{"@type":"ImageObject","inLanguage":"en-GB","@id":"https:\/\/www.recharge.com\/blog\/en-gb\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/624bd2d0a75e67e81c16920493bcda346cb5cfd0f77cfdff3a72413de0254eeb?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/624bd2d0a75e67e81c16920493bcda346cb5cfd0f77cfdff3a72413de0254eeb?s=96&d=mm&r=g","caption":"Conor Byrne"},"description":"My passion for the e-commerce and fintech space started years ago with my first gaming console, giving me firsthand experience with the world of digital credit and top-ups. As a blog copywriter here at Recharge.com, I now get to use that insight to create clear, helpful content that makes navigating gift cards and online payments a breeze for our community.","url":"https:\/\/www.recharge.com\/blog\/en-gb\/author\/conor-byrne"}]}},"jetpack_featured_media_url":"https:\/\/creativegroup-blog-prd-eu-west-1-recharge-blog.s3.eu-west-1.amazonaws.com\/blog\/wp-content\/uploads\/2026\/09\/02170733\/fc27-squad-builder-hero.jpg","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/www.recharge.com\/blog\/en-gb\/wp-json\/wp\/v2\/posts\/50438","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.recharge.com\/blog\/en-gb\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.recharge.com\/blog\/en-gb\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.recharge.com\/blog\/en-gb\/wp-json\/wp\/v2\/users\/49"}],"replies":[{"embeddable":true,"href":"https:\/\/www.recharge.com\/blog\/en-gb\/wp-json\/wp\/v2\/comments?post=50438"}],"version-history":[{"count":10,"href":"https:\/\/www.recharge.com\/blog\/en-gb\/wp-json\/wp\/v2\/posts\/50438\/revisions"}],"predecessor-version":[{"id":52451,"href":"https:\/\/www.recharge.com\/blog\/en-gb\/wp-json\/wp\/v2\/posts\/50438\/revisions\/52451"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.recharge.com\/blog\/en-gb\/wp-json\/wp\/v2\/media\/50696"}],"wp:attachment":[{"href":"https:\/\/www.recharge.com\/blog\/en-gb\/wp-json\/wp\/v2\/media?parent=50438"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.recharge.com\/blog\/en-gb\/wp-json\/wp\/v2\/categories?post=50438"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.recharge.com\/blog\/en-gb\/wp-json\/wp\/v2\/tags?post=50438"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}