From 9acffadabebc824763bb1271d6dfcc1f5e896570 Mon Sep 17 00:00:00 2001 From: Alinson S Xavier Date: Mon, 24 Feb 2020 10:03:17 -0600 Subject: [PATCH] Add benchmark results for multidimensional knapsack --- .../ChallengeA/benchmark_baseline.csv | 51 +++ .../knapsack/ChallengeA/benchmark_ml.csv | 151 ++++++++ benchmark/knapsack/ChallengeA/performance.png | Bin 0 -> 64895 bytes docs-src/figures/benchmark_knapsack_a.png | 1 + docs-src/problems.md | 28 +- docs/404.html | 30 +- docs/about/index.html | 30 +- docs/benchmark/index.html | 30 +- docs/css/cinder.css | 18 +- docs/css/cinder.min.css | 2 +- docs/customization/index.html | 30 +- docs/figures/benchmark_knapsack_a.png | Bin 0 -> 64895 bytes docs/index.html | 32 +- docs/js/base.js | 324 +++++++++--------- docs/problems/index.html | 54 ++- docs/search/search_index.json | 2 +- docs/sitemap.xml | 12 +- docs/sitemap.xml.gz | Bin 197 -> 198 bytes docs/usage/index.html | 30 +- 19 files changed, 547 insertions(+), 278 deletions(-) create mode 100644 benchmark/knapsack/ChallengeA/benchmark_baseline.csv create mode 100644 benchmark/knapsack/ChallengeA/benchmark_ml.csv create mode 100644 benchmark/knapsack/ChallengeA/performance.png create mode 120000 docs-src/figures/benchmark_knapsack_a.png create mode 100644 docs/figures/benchmark_knapsack_a.png diff --git a/benchmark/knapsack/ChallengeA/benchmark_baseline.csv b/benchmark/knapsack/ChallengeA/benchmark_baseline.csv new file mode 100644 index 0000000..34e057c --- /dev/null +++ b/benchmark/knapsack/ChallengeA/benchmark_baseline.csv @@ -0,0 +1,51 @@ +,Solver,Instance,Wallclock Time,Lower Bound,Upper Bound,Gap,Nodes,Mode,Relative Lower Bound,Relative Upper Bound,Relative Wallclock Time,Relative Gap,Relative Nodes +0,baseline,0,662.7372989654541,59162.0,59167.0,8.451370812345763e-05,18688107.0,exact,1.0,1.0,1.0,1.0,1.0 +1,baseline,1,900.0007548332214,59137.0,59256.0,0.002012276578115224,24175550.0,exact,1.0,1.0,1.0,1.0,1.0 +2,baseline,2,900.0016160011292,59186.0,59285.0,0.0016726928665562802,24089218.0,exact,1.0,1.0,1.0,1.0,1.0 +3,baseline,3,900.0023140907288,59145.0,59231.0,0.0014540535970918927,24595759.0,exact,1.0,1.0,1.0,1.0,1.0 +4,baseline,4,900.0024960041046,59142.0,59213.0,0.0012005004903452706,25467171.0,exact,1.0,1.0,1.0,1.0,1.0 +5,baseline,5,900.002925157547,59126.0,59244.0,0.0019957379156377904,23457042.0,exact,1.0,1.0,1.0,1.0,1.0 +6,baseline,6,900.0031039714813,59125.0,59236.97169757604,0.0018938130668251741,24240772.0,exact,1.0,1.0,1.0,1.0,1.0 +7,baseline,7,900.002781867981,59105.0,59212.0,0.001810337534895525,24042592.0,exact,1.0,1.0,1.0,1.0,1.0 +8,baseline,8,900.0021660327911,59169.0,59251.0,0.0013858608392908448,25512146.0,exact,1.0,1.0,1.0,1.0,1.0 +9,baseline,9,900.0015439987183,59130.0,59256.0,0.00213089802130898,23227790.0,exact,1.0,1.0,1.0,1.0,1.0 +10,baseline,10,900.0024099349976,59127.0,59201.0,0.0012515432881762985,25015636.0,exact,1.0,1.0,1.0,1.0,1.0 +11,baseline,11,900.0025849342346,59198.0,59289.0,0.0015372140950707794,24558832.0,exact,1.0,1.0,1.0,1.0,1.0 +12,baseline,12,900.0022029876709,59102.0,59224.0,0.002064227944908802,24026788.0,exact,1.0,1.0,1.0,1.0,1.0 +13,baseline,13,900.0011007785797,59150.0,59206.0,0.0009467455621301775,24953207.0,exact,1.0,1.0,1.0,1.0,1.0 +14,baseline,14,900.0014700889587,59169.0,59250.0,0.0013689600973482736,25494260.0,exact,1.0,1.0,1.0,1.0,1.0 +15,baseline,15,900.0013790130615,59083.0,59196.0,0.0019125636816004605,23792716.0,exact,1.0,1.0,1.0,1.0,1.0 +16,baseline,16,900.0020098686218,59126.0,59233.0,0.0018096945506207082,23398798.0,exact,1.0,1.0,1.0,1.0,1.0 +17,baseline,17,900.0023510456085,59156.0,59197.0,0.0006930826965988235,25573586.0,exact,1.0,1.0,1.0,1.0,1.0 +18,baseline,18,900.002711057663,59118.0,59211.0,0.0015731249365675429,24489136.0,exact,1.0,1.0,1.0,1.0,1.0 +19,baseline,19,724.1934628486633,59159.0,59164.0,8.451799388089724e-05,20931760.0,exact,1.0,1.0,1.0,1.0,1.0 +20,baseline,20,900.0011439323425,59068.0,59191.0,0.0020823457709758246,23411794.0,exact,1.0,1.0,1.0,1.0,1.0 +21,baseline,21,380.06568694114685,59175.0,59180.0,8.449514152936207e-05,11618526.0,exact,1.0,1.0,1.0,1.0,1.0 +22,baseline,22,900.0016028881073,59121.0,59154.94711904252,0.0005741973079365614,26352886.0,exact,1.0,1.0,1.0,1.0,1.0 +23,baseline,23,230.25152111053467,59193.0,59198.0,8.44694474008751e-05,6776049.0,exact,1.0,1.0,1.0,1.0,1.0 +24,baseline,24,900.0010840892792,59162.0,59240.0,0.001318413846725939,24727727.0,exact,1.0,1.0,1.0,1.0,1.0 +25,baseline,25,900.0015320777893,59096.0,59210.0,0.001929064572898335,23438919.0,exact,1.0,1.0,1.0,1.0,1.0 +26,baseline,26,900.0015478134155,59089.0,59203.0,0.001929293100238623,23826788.0,exact,1.0,1.0,1.0,1.0,1.0 +27,baseline,27,900.0010070800781,59153.0,59249.0,0.0016229100806383447,24336831.0,exact,1.0,1.0,1.0,1.0,1.0 +28,baseline,28,900.001277923584,59112.0,59208.0,0.0016240357287860333,25111591.0,exact,1.0,1.0,1.0,1.0,1.0 +29,baseline,29,900.0012440681458,59182.0,59263.0,0.0013686593896792944,24919871.0,exact,1.0,1.0,1.0,1.0,1.0 +30,baseline,30,900.0012910366058,59134.0,59241.0,0.001809449724354855,23615391.0,exact,1.0,1.0,1.0,1.0,1.0 +31,baseline,31,900.0023548603058,59082.0,59169.0,0.0014725297044785213,26213904.0,exact,1.0,1.0,1.0,1.0,1.0 +32,baseline,32,875.9193549156189,59175.0,59180.0,8.449514152936207e-05,24935695.0,exact,1.0,1.0,1.0,1.0,1.0 +33,baseline,33,900.0018489360809,59088.0,59177.0,0.0015062279989168698,25210167.0,exact,1.0,1.0,1.0,1.0,1.0 +34,baseline,34,232.1541509628296,59190.0,59195.0,8.447372867038352e-05,7309410.0,exact,1.0,1.0,1.0,1.0,1.0 +35,baseline,35,900.0025398731232,59183.0,59262.0,0.001334842775797104,23927493.0,exact,1.0,1.0,1.0,1.0,1.0 +36,baseline,36,900.0010929107666,59166.0,59254.0,0.00148734070243045,25589946.0,exact,1.0,1.0,1.0,1.0,1.0 +37,baseline,37,622.9371509552002,59202.0,59207.0,8.445660619573663e-05,18595087.0,exact,1.0,1.0,1.0,1.0,1.0 +38,baseline,38,557.924427986145,59212.0,59217.0,8.444234276835777e-05,16270407.0,exact,1.0,1.0,1.0,1.0,1.0 +39,baseline,39,900.0010092258453,59143.0,59185.0,0.0007101432122144632,26304077.0,exact,1.0,1.0,1.0,1.0,1.0 +40,baseline,40,900.0011250972748,59158.0,59242.99535479154,0.0014367516615088902,23949337.0,exact,1.0,1.0,1.0,1.0,1.0 +41,baseline,41,900.000893831253,59170.0,59257.0,0.0014703396991718777,24299427.0,exact,1.0,1.0,1.0,1.0,1.0 +42,baseline,42,900.0017001628876,59089.0,59228.0,0.002352383692396216,23229681.0,exact,1.0,1.0,1.0,1.0,1.0 +43,baseline,43,127.60789799690247,59232.0,59237.0,8.44138303619665e-05,4041704.0,exact,1.0,1.0,1.0,1.0,1.0 +44,baseline,44,166.38699293136597,59201.0,59206.0,8.445803280349994e-05,5151689.0,exact,1.0,1.0,1.0,1.0,1.0 +45,baseline,45,900.0007989406586,59135.0,59247.0,0.001893971421324089,26922402.0,exact,1.0,1.0,1.0,1.0,1.0 +46,baseline,46,900.001415014267,59152.0,59254.0,0.001724371111712199,26485728.0,exact,1.0,1.0,1.0,1.0,1.0 +47,baseline,47,900.0020279884338,59123.0,59235.0,0.0018943558344468312,28222784.0,exact,1.0,1.0,1.0,1.0,1.0 +48,baseline,48,900.0011022090912,59176.0,59284.0,0.0018250642152223874,28675410.0,exact,1.0,1.0,1.0,1.0,1.0 +49,baseline,49,900.0012428760529,59150.0,59206.0,0.0009467455621301775,30531240.0,exact,1.0,1.0,1.0,1.0,1.0 diff --git a/benchmark/knapsack/ChallengeA/benchmark_ml.csv b/benchmark/knapsack/ChallengeA/benchmark_ml.csv new file mode 100644 index 0000000..6236f17 --- /dev/null +++ b/benchmark/knapsack/ChallengeA/benchmark_ml.csv @@ -0,0 +1,151 @@ +,Solver,Instance,Wallclock Time,Lower Bound,Upper Bound,Gap,Nodes,Mode,Relative Lower Bound,Relative Upper Bound,Relative Wallclock Time,Relative Gap,Relative Nodes +0,baseline,0,662.7372989654541,59162.0,59167.0,8.451370812345763e-05,18688107.0,exact,1.0,1.0004734608295711,8.24056340052232,1.0,5.021790706354566 +1,baseline,1,900.0007548332214,59137.0,59256.0,0.002012276578115224,24175550.0,exact,0.9998140258335024,1.0019275641675967,4.993385989449955,23.8,2.8587779277329206 +2,baseline,2,900.0016160011293,59186.0,59285.0,0.0016726928665562802,24089218.0,exact,1.0,1.0015880792688077,6.423201244853467,19.8,3.8892212441359084 +3,baseline,3,900.0023140907288,59145.0,59231.0,0.0014540535970918927,24595759.0,exact,1.0,1.0013693998309383,10.818053497641843,17.2,7.003043147607749 +4,baseline,4,900.0024960041046,59142.0,59213.0,0.0012005004903452704,25467171.0,exact,1.0,1.0011327900449734,10.658841862319106,17.749999999999996,6.900425045120571 +5,baseline,5,900.002925157547,59126.0,59244.0,0.0019957379156377904,23457042.0,exact,1.0,1.0020974289580513,11.640217537235461,23.595609376585596,6.210826151987437 +6,baseline,6,900.0031039714813,59125.0,59236.97169757604,0.001893813066825174,24240772.0,exact,1.0,1.0018090934817527,5.121599930210644,22.394339515207683,2.997538733050967 +7,baseline,7,900.002781867981,59105.0,59212.0,0.001810337534895525,24042592.0,exact,1.0,1.001725596345796,4.327836971922191,21.400000000000002,2.5321558603504406 +8,baseline,8,900.0021660327911,59169.0,59251.0,0.0013858608392908448,25512146.0,exact,1.0,1.001301247169365,9.974687380609685,16.4,6.491243791727731 +9,baseline,9,900.0015439987183,59130.0,59256.0,0.00213089802130898,23227790.0,exact,1.0,1.0021478462345041,6.707523295315465,25.197442922374428,3.6079997415289373 +10,baseline,10,900.0024099349976,59127.0,59201.0,0.0012515432881762985,25015636.0,exact,1.0,1.0011668808766827,12.967000721437445,14.8,8.304405920593773 +11,baseline,11,900.0025849342346,59198.0,59289.0,0.0015372140950707794,24558832.0,exact,1.0,1.0017741281427412,4.832665619009983,18.19415858643873,3.0010133789730644 +12,baseline,12,900.0022029876709,59102.0,59224.0,0.002064227944908802,24026788.0,exact,1.0,1.0019794609775492,5.374176210382269,24.400000000000002,2.9878278547301225 +13,baseline,13,900.0011007785797,59150.0,59206.0,0.0009467455621301775,24953207.0,exact,1.0,1.0008621418307835,11.635403359432718,11.2,7.550357589811989 +14,baseline,14,900.0014700889587,59169.0,59250.0,0.0013689600973482733,25494260.0,exact,1.0,1.0014535866405248,11.415744726455014,16.197262079805302,7.11231988876617 +15,baseline,15,900.0013790130615,59083.0,59196.0,0.0019125636816004605,23792716.0,exact,1.0,1.0018277822908204,7.00278363514675,22.6,3.9955739669454795 +16,baseline,16,900.0020098686218,59126.0,59233.0,0.0018096945506207078,23398798.0,exact,1.0,1.001724983511187,10.004008035629374,21.39999999999999,5.838894625495521 +17,baseline,17,900.0023510456085,59156.0,59197.0,0.0006930826965988236,25573586.0,exact,1.0,1.0006930826965987,10.766823251438453,10.249306917303404,7.247469055209355 +18,baseline,18,900.002711057663,59118.0,59211.0,0.0015731249365675427,24489136.0,exact,1.0,1.001505361794256,20.92492767473306,23.249999999999996,12.911968272028759 +19,baseline,19,724.1934628486632,59159.0,59164.0,8.451799388089724e-05,20931760.0,exact,1.0,1.0000005221863417,15.470961784565928,1.0062173397822212,10.591789902465559 +20,baseline,20,900.0011439323425,59068.0,59191.0,0.0020823457709758246,23411794.0,exact,1.0,1.0020823457709758,4.918028875786363,24.597917654229025,2.6615039039030846 +21,baseline,21,380.06568694114685,59175.0,59180.0,8.449514152936208e-05,11618526.0,exact,1.0,1.0000168978860744,7.919828298356752,1.2500000000000002,5.819928018093155 +22,baseline,22,900.0016028881073,59121.0,59154.94711904253,0.0005741973079365614,26352886.0,exact,1.0,1.0004895835849292,12.802476483072159,6.789423808503489,8.910205446497793 +23,baseline,23,230.2515211105347,59193.0,59198.0,8.44694474008751e-05,6776049.0,exact,1.0,1.0000506799560773,9.78740127403808,2.5,6.593321682880646 +24,baseline,24,900.0010840892792,59162.0,59240.0,0.001318413846725939,24727727.0,exact,1.0,1.0015046237595306,7.770410032372326,15.595781075690478,4.794053315238465 +25,baseline,25,900.0015320777893,59096.0,59210.0,0.0019290645728983352,23438919.0,exact,1.0,1.0018443004348487,4.2755794007345695,22.800000000000004,2.430121857984345 +26,baseline,26,900.0015478134155,59089.0,59203.0,0.001929293100238623,23826788.0,exact,1.0,1.0018784268598118,8.530928147165179,22.799228282759906,5.011843048217148 +27,baseline,27,900.0010070800781,59153.0,59249.0,0.0016229100806383447,24336831.0,exact,1.0,1.00155518366381,10.423236857875487,24.0,6.308787984678588 +28,baseline,28,900.001277923584,59112.0,59208.0,0.0016240357287860333,25111591.0,exact,1.0,1.001759610178668,4.24772722090385,19.195777507105156,2.51698592241038 +29,baseline,29,900.0012440681458,59182.0,59263.0,0.0013686593896792946,24919871.0,exact,1.0,1.0012840657576834,8.059220760590607,16.200000000000003,5.036832737480212 +30,baseline,30,900.0012910366057,59134.0,59241.0,0.001809449724354855,23615391.0,exact,1.0,1.001741688930975,10.270593022832227,26.75,5.93002733819128 +31,baseline,31,900.0023548603058,59082.0,59169.0,0.0014725297044785213,26213904.0,exact,1.0,1.0013877841149492,9.233104613426313,17.4,6.46848815130208 +32,baseline,32,875.9193549156189,59175.0,59180.0,8.449514152936208e-05,24935695.0,exact,1.0,1.0,15.987594126158756,1.0000000000000002,10.566626155685903 +33,baseline,33,900.0018489360809,59088.0,59177.0,0.0015062279989168698,25210167.0,exact,1.0,1.0017435758540136,5.976698536074014,17.794276333604117,3.7206591588857045 +34,baseline,34,232.1541509628296,59190.0,59195.0,8.447372867038352e-05,7309410.0,exact,1.0,1.0000004582681972,7.491532555121356,1.0054550306131191,5.486824178505076 +35,baseline,35,900.0025398731233,59183.0,59262.0,0.001334842775797104,23927493.0,exact,1.0,1.0012502534297494,9.740123405548385,15.800000000000002,5.589212880222508 +36,baseline,36,900.0010929107666,59166.0,59254.0,0.00148734070243045,25589946.0,exact,1.0,1.001402714167413,8.189434772332733,17.599999999999998,5.231226419568548 +37,baseline,37,622.9371509552003,59202.0,59207.0,8.445660619573664e-05,18595087.0,exact,1.0,1.0007944557133197,5.843025914211684,1.0000000000000002,3.7958181894266696 +38,baseline,38,557.924427986145,59212.0,59217.0,8.444234276835778e-05,16270407.0,exact,1.0,1.0,11.210883533380606,1.0000000000000002,7.713703594486476 +39,baseline,39,900.0010092258452,59143.0,59185.0,0.0007101432122144633,26304077.0,exact,1.0,1.0006593852500592,19.245967989620727,14.000000000000002,12.92696707623566 +40,baseline,40,900.0011250972748,59158.0,59242.995354791536,0.0014367516615088902,23949337.0,exact,1.0,1.0013521179587164,12.329886161660973,16.999070958308586,7.621973085892945 +41,baseline,41,900.000893831253,59170.0,59257.0,0.0014703396991718775,24299427.0,exact,1.0,1.0013857203210816,9.121483372078062,17.4,5.546807599990412 +42,baseline,42,900.0017001628876,59089.0,59228.0,0.002352383692396216,23229681.0,exact,1.0,1.002267573696145,6.27161596269632,27.799999999999997,3.0741917332088993 +43,baseline,43,127.60789799690248,59232.0,59237.0,8.44138303619665e-05,4041704.0,exact,1.0,1.0,7.154743066653622,1.0,5.706695056329854 +44,baseline,44,166.38699293136597,59201.0,59206.0,8.445803280349994e-05,5151689.0,exact,1.0,1.0000337815012499,8.967006538543707,1.6666666666666667,8.06421866121506 +45,baseline,45,900.0007989406586,59135.0,59247.0,0.001893971421324089,26922402.0,exact,1.0,1.0020634249471458,4.643201205090089,22.394318085736028,2.4893172787310425 +46,baseline,46,900.001415014267,59152.0,59254.0,0.001724371111712199,26485728.0,exact,1.0,1.001639704515104,10.462304857340868,20.4,5.688371299868259 +47,baseline,47,900.0020279884337,59123.0,59235.0,0.0018943558344468312,28222784.0,exact,1.0,1.0018435206169876,10.311550532796153,22.39924225766622,6.2834295235506294 +48,baseline,48,900.0011022090912,59176.0,59284.0,0.0018250642152223876,28675410.0,exact,0.9998817227920179,1.0016219503953505,8.789729840090889,21.602555089901312,5.076827636243375 +49,baseline,49,900.0012428760529,59150.0,59206.0,0.0009467455621301775,30531240.0,exact,1.0,1.0011329241279021,14.57737192393531,13.99644970414201,9.844566635787432 +50,ml-exact,0,688.3145689964294,59162.0,59167.0,8.451370812345763e-05,19372651.0,exact,1.0,1.0004734608295711,8.558594565557922,1.0,5.205738534633309 +51,ml-exact,1,900.0030159950256,59148.0,59261.0,0.0019104618922026104,23234502.0,exact,1.0,1.002012106455649,4.993398534832403,22.595796983837154,2.747498256687703 +52,ml-exact,2,900.0017671585083,59186.0,59272.0,0.0014530463285236373,24778548.0,exact,1.0,1.0013684512848238,6.423202323645158,17.2,4.000514059046721 +53,ml-exact,3,900.0023939609528,59145.0,59236.0,0.001538591596922817,23640467.0,exact,1.0,1.0014539306847,10.818054457684216,18.2,6.731047024432022 +54,ml-exact,4,900.0013728141785,59142.0,59232.0,0.0015217611849447095,24652247.0,exact,1.0,1.001454029012951,10.658828560240659,22.500000000000004,6.6796183454101925 +55,ml-exact,5,900.0034329891205,59126.0,59239.0,0.001911172749720935,23522114.0,exact,1.0,1.002012855209743,11.640224105291876,22.595795419950615,6.228055557100073 +56,ml-exact,6,900.002799987793,59125.0,59239.0,0.0019281183932346724,23569758.0,exact,1.0,1.0018433959073227,5.121598200346791,22.800000000000004,2.914563221568929 +57,ml-exact,7,900.002200126648,59105.0,59212.0,0.001810337534895525,24075549.0,exact,1.0,1.001725596345796,4.327834174506783,21.400000000000002,2.5356268779798863 +58,ml-exact,8,900.0022239685059,59169.0,59252.0,0.0014027615812334162,24905690.0,exact,1.0,1.0013181464832528,9.974688022708854,16.6,6.3369387111219675 +59,ml-exact,9,900.003427028656,59130.0,59251.0,0.0020463385760189413,23893376.0,exact,1.0,1.00206328535913,6.707537329143804,24.197544393708778,3.7113859920489083 +60,ml-exact,10,900.0009210109711,59127.0,59203.0,0.0012853687824513336,24863140.0,exact,1.0,1.0012007035107895,12.966979269407192,15.2,8.253782035385862 +61,ml-exact,11,900.0009968280792,59198.0,59269.0,0.0011993648434068718,25709342.0,exact,1.0,1.0014361989726954,4.8326570914944575,14.195442413595051,3.141602145679979 +62,ml-exact,12,900.0036079883575,59102.0,59225.0,0.002081147846096579,23773882.0,exact,1.0,1.0019963794474427,5.374184600052028,24.6,2.9563779750612973 +63,ml-exact,13,900.0016438961029,59150.0,59207.0,0.0009636517328825021,25793375.0,exact,1.0,1.0008790465725637,11.63541038097019,11.4,7.804576169232147 +64,ml-exact,14,900.0037429332733,59169.0,59264.0,0.0016055704845442714,24828279.0,exact,1.0,1.001690217023866,11.4157735555307,18.99678885903091,6.9265263057462905 +65,ml-exact,15,900.0010781288147,59083.0,59192.0,0.001844862312340267,24001071.0,exact,1.0,1.0017600866504197,7.002781294008916,21.799999999999997,4.03056357527279 +66,ml-exact,16,900.003424167633,59126.0,59231.0,0.001775868484253966,23278694.0,exact,1.0,1.0016911603050853,10.004023756326125,21.0,5.808924085978896 +67,ml-exact,17,900.0018711090088,59156.0,59189.0,0.0005578470484819798,26430086.0,exact,1.0,1.000557847048482,10.766817509906183,8.249442152951518,7.490198301150335 +68,ml-exact,18,900.0020909309387,59118.0,59207.0,0.00150546364897324,24853757.0,exact,1.0,1.0014377050844017,20.924913256879982,22.25,13.104215756109674 +69,ml-exact,19,735.9250810146332,59159.0,59164.0,8.451799388089724e-05,21528049.0,exact,1.0,1.0000005221863417,15.721584616209423,1.0062173397822212,10.893521233665195 +70,ml-exact,20,900.00168800354,59068.0,59189.0,0.0020484864901469495,24139737.0,exact,1.0,1.0020484864901469,4.918031848846873,24.197951513509857,2.7442580549228195 +71,ml-exact,21,422.6733708381653,59175.0,59180.0,8.449514152936207e-05,12565443.0,exact,1.0,1.0000168978860744,8.807689403027585,1.25,6.294255723613522 +72,ml-exact,22,900.0017290115356,59121.0,59161.96612870166,0.0006929200910278412,26541785.0,exact,1.0,1.0006082963282086,12.802478277171435,8.1932257403314,8.974074310751902 +73,ml-exact,23,233.35001611709595,59193.0,59198.0,8.44694474008751e-05,6863757.0,exact,1.0,1.0000506799560773,9.919110345181457,2.5,6.678664492261466 +74,ml-exact,24,900.0023059844971,59162.0,59243.0,0.0013691220716000134,25719403.0,exact,1.0,1.0015553414143463,7.770420581945018,16.195618809370877,4.9863131058549826 +75,ml-exact,25,900.0009150505066,59096.0,59214.0,0.0019967510491403816,23655105.0,exact,1.0,1.0019119811847514,4.275576469462738,23.6,2.4525357894455273 +76,ml-exact,26,900.0014140605927,59089.0,59206.0,0.0019800639712975344,23016733.0,exact,1.0,1.0019291951533202,8.53092687934989,23.399207974411485,4.841452120139745 +77,ml-exact,27,900.0011689662933,59153.0,59250.0,0.0016398153939783274,24005753.0,exact,1.0,1.0015720878340686,10.42323873273824,24.25,6.2229632974630915 +78,ml-exact,28,900.0011699199677,59112.0,59217.0,0.001776289078359724,24225157.0,exact,1.0,1.0019118841364374,4.24772671116024,20.995381648396265,2.428136836777139 +79,ml-exact,29,900.0013461112976,59182.0,59264.0,0.0013855564191815079,25392388.0,exact,1.0,1.001300961359758,8.059221674354108,16.4,5.1323384122333415 +80,ml-exact,30,900.0017020702362,59134.0,59244.0,0.0018601819596171408,23434918.0,exact,1.0,1.0017924177347899,10.270597713446762,27.5,5.884709019142258 +81,ml-exact,31,900.0009567737579,59082.0,59151.0,0.0011678683863105513,25773202.0,exact,1.0,1.0010831485775213,9.23309027048678,13.799999999999999,6.359741447062409 +82,ml-exact,32,868.0149350166321,59175.0,59180.0,8.449514152936207e-05,25540967.0,exact,1.0,1.0,15.843319820038522,1.0,10.823113209546014 +83,ml-exact,33,900.0023119449615,59088.0,59168.0,0.0013539128080151638,25040459.0,exact,1.0,1.0015912245657987,5.976701610806029,15.994855131329542,3.69561269154036 +84,ml-exact,34,262.6363501548767,59190.0,59195.0,8.447372867038352e-05,7849114.0,exact,1.0,1.0000004582681972,8.47518236991824,1.0054550306131191,5.891954135154916 +85,ml-exact,35,900.0022959709167,59183.0,59264.0,0.0013686362637919673,24384916.0,exact,1.0,1.0012840440629858,9.740120765958512,16.2,5.696062123614201 +86,ml-exact,36,900.0011420249939,59166.0,59257.0,0.0015380454991042152,24162289.0,exact,1.0,1.0014534146794882,8.189435219240814,18.2,4.939377542025706 +87,ml-exact,37,654.3477861881256,59202.0,59207.0,8.445660619573663e-05,19063867.0,exact,1.0,1.0007944557133197,6.137651391864456,1.0,3.891510328476056 +88,ml-exact,38,533.8162980079651,59212.0,59217.0,8.444234276835777e-05,15587617.0,exact,1.0,1.0,10.726456926772716,1.0,7.389996899424734 +89,ml-exact,39,900.0026030540466,59143.0,59182.0,0.0006594186970562873,26584736.0,exact,1.0,1.000608663307747,19.246002072656445,13.0,13.064895111218574 +90,ml-exact,40,900.0011110305786,59158.0,59225.0,0.0011325602623482875,26043597.0,exact,1.0,1.0010479522674645,12.329885968949256,13.399999999999999,8.288479776865733 +91,ml-exact,41,900.0014500617981,59170.0,59241.0,0.0011999323981747507,25600213.0,exact,1.0,1.0011153358681877,9.121489009458761,14.200000000000001,5.843736810327806 +92,ml-exact,42,900.0024211406708,59089.0,59220.0,0.002216994702905786,23418236.0,exact,1.0,1.0021321961620469,6.271620986793244,26.199999999999996,3.0991449050692967 +93,ml-exact,43,137.64503812789917,59232.0,59237.0,8.44138303619665e-05,4233463.0,exact,1.0,1.0,7.717507283356123,1.0,5.97744970271335 +94,ml-exact,44,156.3585011959076,59201.0,59206.0,8.445803280349994e-05,4787762.0,exact,1.0,1.0000337815012499,8.426546317589533,1.6666666666666667,7.494543957497499 +95,ml-exact,45,900.0022501945496,59135.0,59254.0,0.0020123446351568443,27046693.0,exact,1.0,1.0021818181818183,4.64320869226546,23.793962966094526,2.500809556941982 +96,ml-exact,46,900.0008149147034,59152.0,59252.0,0.0016905599134433324,27848476.0,exact,1.0,1.0016058961745862,10.462297881324526,20.0,5.981050308432905 +97,ml-exact,47,900.001188993454,59123.0,59237.0,0.0019281836172048102,27600532.0,exact,1.0,1.0018773466833542,10.311540920218778,22.799228726553117,6.144893346967609 +98,ml-exact,48,900.0019118785858,59183.0,59291.0,0.001824848351722623,28143324.0,exact,1.0,1.001740217611678,8.789737747610225,21.6,4.982624661999652 +99,ml-exact,49,900.0009059906006,59150.0,59206.0,0.0009467455621301775,28164567.0,exact,1.0,1.0011329241279021,14.577366467382253,13.99644970414201,9.081450887667835 +100,ml-heuristic,0,80.42378497123718,59134.0,59139.0,8.455372543714276e-05,3721403.0,heuristic,0.9995267232345086,1.0,1.0,1.000473500862448,1.0 +101,ml-heuristic,1,180.2385709285736,59137.0,59142.0,8.454943605526151e-05,8456603.0,heuristic,0.9998140258335024,1.0,1.0,1.0,1.0 +102,ml-heuristic,2,140.11730003356934,59186.0,59191.0,8.447943770486263e-05,6193841.0,heuristic,1.0,1.0,1.0,1.0,1.0 +103,ml-heuristic,3,83.19447803497314,59145.0,59150.0,8.453799983092401e-05,3512153.0,heuristic,1.0,1.0,1.0,1.0,1.0 +104,ml-heuristic,4,84.43717503547668,59142.0,59146.0,6.763383044198708e-05,3690667.0,heuristic,1.0,1.0,1.0,1.0,1.0 +105,ml-heuristic,5,77.31839394569397,59115.0,59120.0,8.45809016324114e-05,3776799.0,heuristic,0.999813956634983,1.0,1.0,1.0,1.0 +106,ml-heuristic,6,175.72694396972656,59125.0,59130.0,8.456659619450317e-05,8086892.0,heuristic,1.0,1.0,1.0,1.0,1.0 +107,ml-heuristic,7,207.95672011375427,59105.0,59110.0,8.459521191100583e-05,9494910.0,heuristic,1.0,1.0,1.0,1.0,1.0 +108,ml-heuristic,8,90.22860884666443,59169.0,59174.0,8.45037097128564e-05,3930240.0,heuristic,1.0,1.0,1.0,1.0,1.0 +109,ml-heuristic,9,134.17792296409607,59124.0,59129.0,8.456802652053312e-05,6437858.0,heuristic,0.999898528665652,1.0,1.0,1.0,1.0 +110,ml-heuristic,10,69.40713810920715,59127.0,59132.0,8.456373568758774e-05,3012333.0,heuristic,1.0,1.0,1.0,1.0,1.0 +111,ml-heuristic,11,186.23315906524658,59179.0,59184.0,8.448943037226044e-05,8183513.0,heuristic,0.9996790432109193,1.0,1.0,1.0,1.0 +112,ml-heuristic,12,167.46793699264526,59102.0,59107.0,8.459950593888532e-05,8041557.0,heuristic,1.0,1.0,1.0,1.0,1.0 +113,ml-heuristic,13,77.35022783279419,59150.0,59155.0,8.4530853761623e-05,3304904.0,heuristic,1.0,1.0,1.0,1.0,1.0 +114,ml-heuristic,14,78.83861207962036,59159.0,59164.0,8.451799388089724e-05,3584521.0,heuristic,0.9998309925805743,1.0,1.0,1.0,1.0 +115,ml-heuristic,15,128.52051782608032,59083.0,59088.0,8.462671157524161e-05,5954768.0,heuristic,1.0,1.0,1.0,1.0,1.0 +116,ml-heuristic,16,89.96414303779602,59126.0,59131.0,8.456516591685553e-05,4007402.0,heuristic,1.0,1.0,1.0,1.0,1.0 +117,ml-heuristic,17,83.59033393859863,59152.0,59156.0,6.76223965377333e-05,3528623.0,heuristic,0.9999323821759416,1.0,1.0,1.0,1.0 +118,ml-heuristic,18,43.01103091239929,59118.0,59122.0,6.766128759430292e-05,1896623.0,heuristic,1.0,1.0,1.0,1.0,1.0 +119,ml-heuristic,19,46.80985403060913,59159.0,59163.96910538342,8.399576367784492e-05,1976225.0,heuristic,1.0,1.0,1.0,1.0,1.0 +120,ml-heuristic,20,183.00037813186646,59063.0,59068.0,8.465536799688468e-05,8796453.0,heuristic,0.9999153517979278,1.0,1.0,1.0,1.0 +121,ml-heuristic,21,47.98913216590881,59175.0,59179.0,6.759611322348965e-05,1996335.0,heuristic,1.0,1.0,1.0,1.0,1.0 +122,ml-heuristic,22,70.29902410507202,59121.0,59126.0,8.457231778894132e-05,2957607.0,heuristic,1.0,1.0,1.0,1.0,1.0 +123,ml-heuristic,23,23.525296926498413,59193.0,59195.0,3.378777896035004e-05,1027714.0,heuristic,1.0,1.0,1.0,1.0,1.0 +124,ml-heuristic,24,115.82414317131042,59146.0,59151.0,8.453657052040713e-05,5158000.0,heuristic,0.9997295561340049,1.0,1.0,1.0,1.0 +125,ml-heuristic,25,210.498144865036,59096.0,59101.0,8.460809530255854e-05,9645162.0,heuristic,1.0,1.0,1.0,1.0,1.0 +126,ml-heuristic,26,105.49866700172424,59087.0,59092.0,8.462098261885016e-05,4754097.0,heuristic,0.9999661527526273,1.0,1.0,1.0,1.0 +127,ml-heuristic,27,86.34563517570496,59153.0,59157.0,6.762125335993103e-05,3857608.0,heuristic,1.0,1.0,1.0,1.0,1.0 +128,ml-heuristic,28,211.8783130645752,59099.0,59104.0,8.46038004027141e-05,9976850.0,heuristic,0.9997800784950602,1.0,1.0,1.0,1.0 +129,ml-heuristic,29,111.67348194122314,59182.0,59187.0,8.448514751106756e-05,4947528.0,heuristic,1.0,1.0,1.0,1.0,1.0 +130,ml-heuristic,30,87.62895083427429,59134.0,59138.0,6.764298034971421e-05,3982341.0,heuristic,1.0,1.0,1.0,1.0,1.0 +131,ml-heuristic,31,97.47559380531311,59082.0,59087.0,8.46281439355472e-05,4052555.0,heuristic,1.0,1.0,1.0,1.0,1.0 +132,ml-heuristic,32,54.787440061569214,59175.0,59180.0,8.449514152936207e-05,2359854.0,heuristic,1.0,1.0,1.0,1.0,1.0 +133,ml-heuristic,33,150.5851171016693,59069.0,59074.0,8.464676903282602e-05,6775726.0,heuristic,0.9996784457080964,1.0,1.0,1.0,1.0 +134,ml-heuristic,34,30.98887300491333,59190.0,59194.972872826496,8.401542197155456e-05,1332175.0,heuristic,1.0,1.0,1.0,1.0,1.0 +135,ml-heuristic,35,92.40155410766602,59183.0,59188.0,8.448371998715847e-05,4281013.0,heuristic,1.0,1.0,1.0,1.0,1.0 +136,ml-heuristic,36,109.89782786369324,59166.0,59171.0,8.450799445627557e-05,4891768.0,heuristic,1.0,1.0,1.0,1.0,1.0 +137,ml-heuristic,37,106.61208081245422,59155.0,59160.0,8.452370890034655e-05,4898835.0,heuristic,0.9992061079017601,1.0,1.0,1.0007945228636634,1.0 +138,ml-heuristic,38,49.7663209438324,59212.0,59217.0,8.444234276835777e-05,2109286.0,heuristic,1.0,1.0,1.0,1.0,1.0 +139,ml-heuristic,39,46.76309394836426,59143.0,59146.0,5.072451515817595e-05,2034822.0,heuristic,1.0,1.0,1.0,1.0,1.0 +140,ml-heuristic,40,72.99346590042114,59158.0,59163.0,8.451942256330505e-05,3142144.0,heuristic,1.0,1.0,1.0,1.0,1.0 +141,ml-heuristic,41,98.66826009750366,59170.0,59175.0,8.450228156160216e-05,4380795.0,heuristic,1.0,1.0,1.0,1.0,1.0 +142,ml-heuristic,42,143.50395584106445,59089.0,59094.0,8.461811843151856e-05,7556354.0,heuristic,1.0,1.0,1.0,1.0,1.0 +143,ml-heuristic,43,17.835427045822144,59232.0,59237.0,8.44138303619665e-05,708239.0,heuristic,1.0,1.0,1.0,1.0,1.0 +144,ml-heuristic,44,18.555466890335083,59201.0,59204.0,5.067481968209996e-05,638833.0,heuristic,1.0,1.0,1.0,1.0,1.0 +145,ml-heuristic,45,193.83196187019348,59120.0,59125.0,8.457374830852504e-05,10815175.0,heuristic,0.9997463431132155,1.0,1.0,1.0,1.0 +146,ml-heuristic,46,86.02324509620667,59152.0,59157.0,8.452799567216662e-05,4656118.0,heuristic,1.0,1.0,1.0,1.0,1.0 +147,ml-heuristic,47,87.28095984458923,59121.0,59126.0,8.457231778894132e-05,4491621.0,heuristic,0.999966172217242,1.0,1.0,1.0,1.0 +148,ml-heuristic,48,102.39235091209412,59183.0,59188.0,8.448371998715847e-05,5648293.0,heuristic,1.0,1.0,1.0,1.0,1.0 +149,ml-heuristic,49,61.73960900306702,59135.0,59139.0,6.764183647586032e-05,3101329.0,heuristic,0.9997464074387151,1.0,1.0,1.0,1.0 diff --git a/benchmark/knapsack/ChallengeA/performance.png b/benchmark/knapsack/ChallengeA/performance.png new file mode 100644 index 0000000000000000000000000000000000000000..c250cbab6166b86e6e12911917e430559ce31185 GIT binary patch literal 64895 zcmd43byQSs_%=EQ1`-CLqyZw`ok~e}GoW;XFn}}`s3;&IB_Z8NORES-H%OPj00Pnt z=icJ``~EoJT4$Yat+Upd_4+z8v-f`Dj_bbe>*1BMqBK4(87>Ni!k4)(p^8G`w4hKY zrOus!pO}5Er-Q#vJKd8}KL;<*b0#n0-{&3f>o}oMq?eFCCz@`riNX*0Fp}CBHG4CR z>qAFVlafNrM(>|3p)!3({&3B#zBCU^?!ZNV()0qN*nM|7KOTw zl99Np{`kZ15x2+c8zVB@okg_zcPmy&JxP1|AM<`p13w@TEBki*x*CkwhBLkPu3IOe8N|x7TGu-(&P2-h<{7QEvuNe_Cc@U z1K*>2p>#^`2WSRkgP9GP*;tz4Cz{`IRP1V^l< z0rz;rd=0D)b~hX=Mw;5%>`30rg|wP=_hhI|JC+r>Eb5ACoI_Pz__zCFti`U&1~Oeg z-rdq0iI0k+&sgKVg5!JW7vsH&8Y;039a>yct>HkSJnQB#O(q<3m1}KluJqW`hf65b z`tALZ&g!R6Ps*s?yLT^ZZ)$3aR%T~sMy)KJb?CuV z%SP;cBAzHtE)$@{?7xjsE@tKAgwx=hIa5+Ddgspl5Op=Rslw>CUoI8X@Sg+UK8L99 zVOrKvl{nn!!(rIQdVewsg>7_M9GqUh+<~({asq`_*se(0nzAQERrmF75xD=e)pgZ0 zt>FIN-s1A3b=>vw@dxp}r%_ec{%7Xlk&$;~7?_xBoPAVO-qCva z_|zi$Aw?crOPX8pb_&7o-c1xnqY`*;{qrJh%5B9DcS0MJ6=HZYl9Q7MMAEu5db6~e zZFsC>AiV z#UUA@uBn;&;R6M@Nhx3dtstR9+o2N6oz>~``OK`a@bHvpX9=y24i9AIgr~~4U2zz&y;j^ zbrHleGBC(4SMTK-c<-3z=$EN7YGy0T%fFdviAvgAt}%T0@F8Zd^cCBdn;D9PoUhdjF!5KQi&rQ*-!c3 zMnXjW|1cE&?{6(ruw8*#r)VpeqTHSQyjl{Go|>)r)|thP=GtxX%?ANbZ=E9I<+^uD zsv+IMKFX?zqQGA}Jeo3Z^4T&zW0eCz`9p?=uRyg zQT!!(k54*#eZR6k=HB&dRJPC$4&h9i&UU50-jlgH)$7>Dm06N#fM5L9u}p|VPaYSq zklyh@h@)Jz2Y$V<2~!dzo_Vkt(e;<8-!d7~Bkm2V78SWz-KSs3Pv(^->GV`T1Xir+F`#4Xe_DZR>&W!;myFA&~a)-%3& zr^imy>a)fzqea|LktU^)T&$uL8Lqfo(xrxOPoV`ZfDM$s})k;&)msNyj!doQ9|6iaNq42nLbtB=@{p_;EQD= zT}wv(HYDPtX{Q&WAAT%|#?KK{O*%!pG3eTrG2C>9pKPQc24AP;Huq;C+=6Sb@z@v{ zzGNGR<8#nR;^?feT}a|$N?lwyjulIW@HB zuBFW)V`sUwnxuQw9~+WfP|4u6+QUmp&`g_A($dMq6p<|DFE>{0qZ}_%n9=%afBkd2 z!EolVy%Hw(P{aZTR#o}&d)C7;8ZW0x#Vw|0t+#7EQxg`Lh3cR+FRJ%)s!4ii+-BN2 z*b1|wsq_ejyp*O zRko&Xj4nRz>e9T#JElvSSDYCJ$Gq-7vS0BzoB7MZdD&^s&_fAl=4gM($D^W7ulWG| z4@$I&Js54*h)rK}J#V05pv>&b>tAfH=JstX=dOG7R5-p!Of9L?&OM!~<}upir;g*j z-}FzQV{D?I>skpENQ+=tVGY`^kgYCB%xw;m+)uDz)#zs5!_BI6uNE-hDy_|r!e3;} z4oL~}>@nvMGH|2dxO}fl8UOfh=UVoB%NhIyVn_jszUzBjOi}Zan(E^qhkvG0&z`4U zXr1!?4`}D`*xwnp_n&-pStjYdOYDqqu$TVuahT50YFF8yqd~UDv@<>#rFCyp^k|KM zAmdEW2Il<@dZCW_s;9?~*)0<(P%MmJxHox?j5IyH=i+kjY(b*an5~Rc{r$w?U^mx zXv%YJoU^OGJjm2&$G=gOZXf3TQ@bwMgjbHIkjRAFQaxKCBK0RR>TAZ`#t{7&)gf8M~8EQgvUF$B>sRP&obRweP>12O^E76Jq`og@XT@u z05fL<0oYgXq_!UT94r`eTXxYm*vIu1_3mC2oRT{ESG8JX$1I|MlSYSA@ zwYW~0=!U7z6sF;Fx7BMkbUtl(tay}{ylZEL2OWP&!hzt+@~FqM zaCk&Svk3=1GqVCzFIuXqAvMiN#PSt+`-LLbEb?t&5UqyB(x>(uI}F)a=L^SaNc%^7l?7rJY0x1hjT z3X6@+F^~7sWYo&-DX|?|pG%9M@2@#5ZZRt~aG#^CTB#>LWPuVHh1zA(j7*X{^X66O zQjk--!0kusVJ$p`K@2C`a;rO&-r@whG}!)dotGAWW+LcsuZr^J75ek#RI4`?mqoDm zN`T=VMn*Z;QMWV%Gmc=o6>!g;!>&`fRGEbd` zBe73@^0Mm>CBF<1_m}^|6pQBOb~^QGU{T}N5eDuV1qB7_IyxDEPIoH)R;Jj{b1j{w zxAJ6FW?G)$D(zM;$|{GU#nWi#p2nPMwwbo{i>t*DT&Qn1WkPM=)76cp$@u*FXUz*_ ziel7~awLx>jm(lSbKaV^a%i5~{9%-abHP3J`^CbWzx|ph;|c=<&U4Z8yd?BMtusNf z8j}3w%jWV8WJghauE}@*FckJmXa`cYnp};J?D8HPdqwXOh4()46qX;rcd^@=nM~pl zAM$O?6~LYcZRmRuVIS`g8ft2SKAgfRY&MjT7Sm1Pj%CqfHaA#Vm1_22KWlszi)DPi#y|js$fOIADU!T@zn7jT2vRq-@F)A(qEK$8D|p8hs^12Tkxr zG?0Qn(VyB|J3l|4jNdW&p162;e0&~&pT-FX3v9 zsy^}8XGb8Bh}B3d6C|YFS5oSq3KCsfhB6X`N*GJ@|NkE!@xLzu{*S2+8l8Q#n3m00 zHQHxyXsihKJUl#{o{dep)(^jXqu($OO1Vb1H)d04mWWZ$H3epLxw>=^m4>o%aD5PU z9#TQg&CS`i69IbwHr*VtfcUIF zO9Y_VaPa7^E>+vnN}U*9`@RT6?~K`apK8m>p~b#aghC0#jGA|tnB>(`vg1t*rkf)KI0(a)cE~hbk&tM z$4^Iz@y>-maWghfnrV%pi)cLEABTKDq8ONC|yK#H_XQE<~Bfb$)+!B|JKMzBcPWJ`3Y-Fi^YyXQGyYp1w2T?z89@(;;DTaic}H z4S|#jLxvuU+%jGEup6nL^h0t#PvSz&t^iBk3!$&?w|)RA>-*;Eu2$Z$VWRhPU2p?T zyYN^RB^DC z4%kqVkzTrVL#C;k<7_1)oXqqKd0Y$aT+HhHCM6C?~F`HBb)lH!w)0&<_U);vtkAzF7*}m&dlsw z6-&3WOe-ssd~Kp@B&lCdsfC3EU$140o}p(F$v7n))HH!%;A2z%c;l;pj_z&qXKMIw z-)3fHX-R5?4^x#gnFSc#yh(KNftH5zTe1-r$>)Cb%={VR{c76!Ofs*7Ua4r)74Sq1 z<tJI z*pI)YTcZt6vk^z5@%^{>Z#m>|4`ge?wCG_-CtPB>&Jw7r>VL?zwl20^Hkc+R$>^L` zHPMcg!Y9v^ijeaUoX*TnyhkOYGBH6G8J6zuFJ6~oYGq-g9z2q}{qrhqT^&6a-}VO| zQS8-!%#67W#EqKmI#wjBwzSBnq^4#jCrdyi(R6n&M>c^7!)j2ett7k=2G;Nq!b@3Q zS!QM?0wi9(JZJm!)7_9FU=Q4m%kJi8T zM#YG?V#AB)&(ky06;mXcMd_uMFB4OL?AR95(9+s7sSXalIIUTxuH3b$wbmg>Bjry| z+w;3{mf(8EobbZ>*)}X1xsi;JH_F%GqiB`=F@ah*U{oE*_h|C@ZKXJ-!hvjV>pm`P z@db8Jv>SBY=+#;PPuyLLKgyo#PU97vMZlFtmgZbagn`wD-qviQ zsIXtGGgdoS)Ba}%kz+i`gHr4II#POCc9oD{4gwm>4nOP)=bG(Ht(GThM^u$C63=s^ zxm0+vG~#oQ^mphKA5T}FaH%lUcg$D4d^y@SFE^*R{A~<|OVlvUShkieEF>~rX24j0 z;sYs3e9vmTsFng6UARb6sB@*Tko%_BC*0Qo8_VrA7VJ_X_ntiqXSWFE@K0vE!=@Z> zKbjbOmf%NBXGW{hyTbhZ=2><;am&WWXf7VTuTP#Bq-WdD%`YhC9Yi{`M6$a>@N{0T z+Oq1;MJv>t%j(UPV=0pW+Ec;U+S-~{=ER8;IdP1CD(Ey76cqe}EEoQQ6cox(r^dT# z*sc^Z(-^P{ip52-5ar&ppfi!Q(U+|gBG6av(wnKFTjlN?amwif+Th{G!-G1~9KV7M z0)G*mQiJaLpzeuEq3K_g5kM$!M$0xeZ%kw&_Aa2KIa9pWCrGhtvMA6R&5q7jQ3**N zEEn+lWR#NW9h?L81!Z%4|5?T+%mHx(Bh4Lb_G}w7QxBbWUsG?>a$4tf*E~LXPsh)6 z{GpPJk8i(}XQoQUxGeRQR=6_K(yK_X2D+}w4$Zv%q%W|s*Vx#sCgWC?TjS|>vOUCb za(H9#i|0Ursr&YXzccXr3qd~nNq%_O60guHT688#>K0kN@0-n^WW>c=XCfqxy=mROGI|g%)tlAVGv1dea(~`ltU+wP&x;XR#eE*3(j~ zR1Yb7G}}hnQ~X@tR|Lu`aH1+M|>V zSy{!V{dQ=MnR`AFU1{r0G2T@CjuM2z>%li~-P)MX%ClO>cH-jVszMHqdpvnwAyz=6 z!ey}wQW~8M?(ULW`tI(oX1mtbNI%=tcI-j-D7!7?ahe@x#KFM{Nq$aURK~|FB4Q8{ zz0~b8Q!^wmv%bk0^khpzT`Oz6B5uUIo6&QZ-8}uP;?02D6Y; z3Ta&?L|t3^=lqVMy{Pa~i;tGNdU{Do3B8#8;^$w#e&wPs{>?99bRX>K$$v^wPj$Q1 zmlb{7aJiuCU;DL`NKd6xNpHVgn96p{&C1kETGNxaTz}VPi08%O^_VOtzM@&>hHtCY zEfbjeA=@FM$AMc?zncY|@_uk`z~CUih9q}%^bKA7FlwNpazjRe_m_~vxG$Nv!zrA( zy}bAFZc}a0luGUJ+*%r84y3PF%tSPfZZ0BKkiE<%T>Z^*tT2LK?WpkRe~!!b12Zki+hl{Qp=*fH1pYqra;Z;07K z&||FRaQw$BBjT;Xan}b%iEX0GLf~DCqH%evnVE%wg!lw~KiNr}w(s82?`eA^YErB% zP?T6z`s($${uiYB8;dmhX)xQ}`9@M`&Z z1$hsd-$#{NzhV#hzK)N~-yCHMhT3wb>)mQOO*l51?yP4^xsJQObn0f*iZllRZ7#YO zMZ&C`?6x*Dx9oFNfvoK0_wz6m4ZBi3-VsbFOZE0-s&Q`3p*t+MCV{zNfXh-syy%8BJkfc&t8}f*jzkSVb zqLf@f%Fn;qs5rB-po?*qGe$mIz`HVJYAU+K6!Lpw$mK;*$K+mP00BL2wR%2O1PXG! zB~>1RTw9+zlfq)dQ+}r3$=RNi2CgN42>yqEkSlS{mnyJ^5E=|vxFJxzmjRhWga~uixSbssjJ)FA~h^I*R6B`A2*~h zU&Sx^Q}D$Xr_W}LPJ|VHyu12X-9V#v&Ves4{k~`%zZzYWtn(kNO0VFDOea3|%@N^K zddBy0&l70+j--~m`$H~!`s^u}#TV3DdFt#0>TF$JJn;xL*WC;mnL)R4Ur4yLGAo^( zO=LXkwOw7hXf%t=BNY|0;EQ>c-x7Hi@`ti_+plpF5mT|qka0cmwX0YXEt>6kxY*pN zGN+SUr)8s=#nQqToH75O7J!1jurax|%ni`ydzu$GXRXDI66Yxi0Ip>oqtk04m!~Gf zxNXw?@F=ijlY8j~|ICJ2u z#X%yw>4+_(9lqiy?6vomlZ?=D@o7)BlaCmA?0$Jt-e=Yg`6cF?iOlO)Z#rH?MJ=95 z1^BCbuyKa6snwPfV;|5kr6MC)2IKx|6ITUg+mNt_y5`D3)7puZ6*58hu*=5A?Un>{ z>J}ng%o^g|sxekJj5J3dn^~*Wf+vJDZjM4>}!Cz8W^d7*+8=B_nE^_@AV2&Kst)Niho~TIiZ!Mur9mj zy9ADptI`P>f#nMOH$~I>fNVb)Q2y5vma^{4?tF@KA==x{!XlVv5T87e9hZzv^c zA)pr0u02br2}p!OF%3W+@q7yT_c-f|6b}mLM9t;og+C-k59$sqy5P$xXzYF= zifWxHq_Qv8#>_>s%gQPCY3Y?_d@fqwa~fJC1H&mOEcmtZIC>^MH%CRmHr8tBv*nWI zvokaZR&8E%$!ePjuCsYRVkVfjuy^CBSrn}T*R~{7=75A+X z*NxR?R%_s(bn}f~7#SIHnYU4lK%tI%;ez!ed2_w~Z$96|#fhoN1~ZIn@7=>3zPzL$ zx(uVfvM5vo5&p7~(cmyO<)zLH-O5%rycAkGMrQu9?%Aus!3hIex6?ltsfYJ+7w9s} z1_oH;4&&E$B%C+}PU)L!3^azO_eL?n(SwcZhgZp>qciEJ8e{}Ej*7?aK0je751Qcb zUpD@-pg1Ofi*s#w`Hg;-`a>5=G<(dz#A)#y>fcrPeU?@#(u&0R|Y1NC$-ereqiYT`?|0j!lBY1|u{cb_~F@cBOA z5tQV5i=Av z^Z!hSh18AVps*F25j@!Yl1Vg{_md@`-OBdPJ$F0~3vv)y-mu-&!JBH8~QgT0D;tTydnE&WKmVyc8lK*RODGUf68|D65%q3Z1Wic|cL zpXp_$ySn<^J^t(q|9G3nAM(MF{N(3F37IU71!9C)>3DIY_B&;EJs$YOkq zL{Ns;3!WN=QDt=H202ZqizIn9^s7EdR!H&=%l!2G`Vq0eq8wiS9g&~OiP435RMc0^ zG);U5q&5CsO(`x%vaK)a{kEh!qFadRND&>SrZ>u;9j)q5&G3v@UIE|2wWWyQ&A+dE zLQ_D*)xzuJaBc}XnpZ$yU{&KCA>&hCw7_*SwX=i36Hkw$OzBFhs8N5a3JN&Tm`=&2 zA3r)ES?r_#inrF?icFp;^=b)dxF?s7Jd*Ti4rjlmLqcvV=$^FTf7TlFL1Dp(vMIwN zj0XQzk%iG~^xw@RK)DAU?dBb+0&cBoMpnw#`xy*ILu=x92cK(_bX&C4$u$ETi!crG zq;m}?5(=w#=NY{q<&@8*#;ik@sU4d}E)%N}gDHpAjjo{f_3KZfIwE@d`xgj(wx1!D zRs6wk^Fx-u1;sADW@K&Jy{VJLM5bD{g1j4VD6TT;T~ty+i5;y&^kL-X)slP9^sesP z-VNl&+qjG^6HXaZ#zWMcENy4QLF%^ld!#}uuWB>etTj62_ir1Yh~t(K?h}4b7B@^$ z7mL-ci@eDXyF-aWsb+=}p+$89@;{Z=y2=YbzxmRdgPfXXWa)jq{g=1Du|lgsU0(_W zA7SYQ37Q3*!e8clvxrGZ`fjqh@Nz>YCY@;L}oX? zSy?HBb{Q}w<8w&R%+{Wm%0#}B;KROCfxP+qazFXMf`SC}94vajcAbe$cWyM};o_*z zyv`WUdR*eHJHs#?{LpoZRW&u5lH5zFwwj?_HyU$wuH6OMhN$M*1W_`!2VyY?t$z)E zv@S#jwcQqIltyBggNW5spXuqw&vtyv(Qqsi_Rjok&?wZ%TjCkibqIsl5#eG1J*w)` zWEDLnKJMFJmnyy?Bg6zi8v?VdUCRb~Ejw1tQz$GwEP+^8Tqr(6j%%slQh+`*AmN)G zXMvk6DHj$Mt(hAGol;0Lr2SM|85x-oy{o7%dB|0&cZ;*cr&a~|kjIO)mss^?nu+pq zabXYlmbDPF8xTVjr#S-+jYNn#8l3}srhS2gNg3$i!}T=Log@>KFJVV51&T&T;4!C? z-R^m~&$>ch^=@YM;jVQR(BkF5YQ{j+!##h#Q-OCR84w&cE3djM{%GG^R1+74RfL7S zPS07N87MKK!`^3?hXeQUUG@T|f=txA5*XS+iqMddM1)QTa(4A0*q9-*uQK^}%}nd# zgz1JB|d@Le*)Q}dM&i&0qu)Oy%BScWNPy> zjO@?#5FISaOU1?}8@P{--)G`Q)m2nJ;*;~-xqZ9dKl}vB6X}dpUonCf_@jsABDe0J z|9U$LkN%61g?^$!%{A)O6`Ab6F20)y%aoazc+YkCkw1^!@K2*7q@bUTbp@JS6=B4w z8BU|NPs-7r7{_x7_?VG#B08FEd|4G4!FI=RnNzW4_idz;fz*wONlD>hVKg#L?d@7J zGOvWFf>$>~HTqi7Nk3)QH^zA4IwsRhxs>?t6=+&{s)-N||R-NnZYMn@Vu$ zv$*EMz_QP26t?PI%M;D8+1_J+2RX%y?`L)^XpjMj@fPallrQ8~VEWOn83_pqb2D+! zLsQ5C+x3DR=it}$RCn>PMqh)pA0&N{LRzxah_2oxv_`JR5?;P?1w@8er12$EuORwl zSv@wrd&ZTZ_#9|-gi57iMg?f3HJ(v3{1exXUjS@T?c`wlL|@T0W{85z5$BMfsZmaFwFEiG{g2sT}HP$+6pP0~cQKdj@+YTmnD+K|*=(vKZVoG~o3 zagZ~d6)Y}IzI!zGnN1QW`am6t_P$F{>DguYxp572;H_G5j^i>*bg85U)H8Mw(Ls#aE;&@>+_Qvh~NTi4c(ux`1oaH&%OIn zzEqZ%>mKdZ9A#~ddME)Oviewv15doOvlEw)Q0xBvm%y7NJiBp2;2b>E{per|biFyy zu33OqpE`V@G#3XO((@=klV2zAX{>3^61AsHVPkmy~uMiI{USxq5K}MQ^>^!34 z_7%Za?=5vNmX75j6B{hDL~`voT`WP1A>t9c^H~h6tXhta1xw`%EN{tq6_cdis%mR% z2dqGgag!SOJ=+ndcH!MQC7;2R0955yHat@UPUT0}E;a3KCNo^H zGL6KOB*0T?dcpqs>X%jnSOQc6YsF&85N6D4%M!#O<=c}1;laVzLo+t)N?@8BkDMV+ zVKEOxd=5Po;)HZuN1P*|bnRZ+{`83r?LL=M4jSo=@n?iqz$W}{w(YFVUWrVSenojX z_2&&{(e=AyrW|*HQ#HsokF46Z+}fi(~%eDe*u;*9TjRvaaRv{enKA7rfQ$f&dcln z_Ts`uBVGI*=!i{BOhofNO7z~yGNcy~IsDL8?7X1Ktp8bAuf#^h);1?3Bm@JJ@_A^m zYAP!$XElUHL|9LJd!bwAm;yX45gA!#zH!4m)ajisFWstq^a|CnP&E4T0&4eKEgMEp z^ON0Gs^p&u%Z6m9TDrcUa5*sZjJ$d3aU-I-8K)%h7Z*L4Qz`}(d~Z(=wxF3s4T!Z- zpCd0ctUPoZ7yp!r?EeuTabL(ml5>#b98=k_os|k(tF0t88S)Ge2>b^QI7Yv*KjvWmtwWBXb4{85m zp?4ee^qG=Z(gt*wyZ3k2Hh$a+!a{4wW=rVBix=+eozft1U++;Cjy}0IKW{bS*vu^8wwer41fWwIWJIjt(Qd>U0t#$S#)&Ukc(uwl z7ps~OKRo<3;ZMEv2LQ=B^fg`GSwI_JI_fUhl`+1H0p%u=5Jk4fPa)`Ru*}K4BF6^W z;9mR`1Zc-bS_P10LZ%kp{Amnbm13mX0uSm3#2H3IOhja{G2aXAdH4O5hL~cTC^*QF zTfJ+A96LZrIyf@Xt!PMxT9-1o&{DHALymuqLjv>!3PZ>PK_R{XU4TATpB=dzokA(- zbALb>(FSUtVLi3uOoVAXOYPaQboH+N)WpQ1`8~64g-cFu#ZtLh1Kw3OvBt(m=D--Xhfm)#>!r4f z?7czcAydU)DnETv262LSp)D{o?|=>jC<6x^?xdupEkLKR#}A*plA9SU8M1K%u#lg7 z7lEgR4c`SBJ>p^5%^~}KINeae)jwM0L7UMF{e93t(8_>F#d=HM+1WWH8F+ckEolh} zu9!9bz_}m$sE+=}%xrlX8J3&GRFDF4^hy~xISX}^*4EcCIR;gOdfmrp7NcX$Sk#Ug zaqhQl3ZnSv~>i+}nEq**RUuC6+Q zzj0Y#>%KHw@qwq{moDo$l8 zXx$oX!x==B5%K78eS%tN<1}yU3BDl?0P`S2ZZ_lZ!HLtSi^@eoSkjeI_iFK)pi4H* z9B6IcchA|B*n{$6u*SzH!09cOur5!G0-aJ^Pr36#G$lyz*8$1$9t^)DgK)hvh`YAd zCa46>_E!j*7{F5gFXvjUaHoJ2gHc3e6qW=%W96_gK6r9^`A&HAoZTQ*I7#Be?hvBO zK3 zS_s_c;!+3K$oeZhS?>@>4n*9Rk4yl7gPfNU@Z5Ij)(*{Bux4I#@lcDohQivR52OP6 zH6tO%jDQBgeLf?N%V|a)_C{u4V1SI%OujpEsv&6M%ac=}X(@s=E&smgXuZ%yF>NO@ zfJmdeZuJhX_uWO*!fKF^z+vOQFS=NdRePZc-YJz9<>ckr!{$;=QChyZOhJ+T;sPnd zjT?94eGbcVt2TAtUgMNPdV;WFOP{9*WI!76xNwTf^UqyGz=&v2sc*s9o`V`wQ!MI6Db8ySeg0xdCadLmyle7NLdhJ5T^S3cL^C)sB5zJ zlC~{0OOY;h2*8(U#9q+DL_K^R%PouOIKqXQHi(9479`bOqmNJ*wz4D@1zU z2uok&ec%pEF*4zPeJ6!(tM#59b*LT`(YH|Rnh;b{)Pz5Q@??i+YYZY{`Sg3eN`Bf7 zTDP${8&`QZySJGE3&fX)-0cxmh!R`oHTwS2r2$U=Ko@P!wPp_;F@y9$Xe^;sma`-} zqImt*t)$vnJUqOfY@I@=jkC>$Y7RE_WNgQJxC90DU{7014xmLZw7?E*f*Uv6S@$b& zjA8ytj?clOf2Ly3@%c0{Y8UrjS8Ldm$;nABm*3h4+YO?c7z`$2ru@&h3&fB~0fAVy z#|blk+l7{yoNB<{x7e&Ik1eaI`nO~P7>mO9W#))?^y%5lgxFQC)U&h_qN-HVPOX7I zOG-#!%24*PXR&y-G;YI`ua;qNrQ2E&w2xD(XAo)v zNfnQ#>ggF7v*scZrXEfLMY9|Gfw_D&n;ili>qkJz5HP(LIg4nfjt=*xVF*yvm89PQ z{NPeirL%2lXqZPA@2NUeYTplQ^!Y5MuXjfGlO59tbSl5o3=##G)yL6r2ndQQ1^cRv z_dNEa!vh??ikx`jDj6T4A`sZ)3;p=x$qkWATx451s9RzMwG6#B!mDAa(cU}La9m8& z+q)V>ps5gng%8%dTk9i0w?;=NT~}Afd@Rrz|N0EsJ4o#6P*s65H?iR%$u*ko;k^K3 zq`F0t7L?Sg05gyl7(mfXC@&DHCY8_r%2GK7h3zaSI!>-6%w1r$7*JtY4}X62`t@t8 zwMay|1{xAbA>9zIemRz57K{5`N=_#wbWA&tz+ z$_m=9c2yh%rAX2S1cpe@keq($(j{nIy{CFSeu9>U2D7a%y4xAF4*A(?d9(@;xT=Xs za&GxN!@>TnsC^-?hnZO_A`wHHf^Zb-9f;6AJ*-728??{Ch63;5Y2U+oIJXzqMpX%9 zLlu~oZjHBBcL}&2Qm+8ugQ^Eq6mJLdpDYD?}$79?WYg@RnoS6~|g` zadNJG2x4xcS3#%L4$*Efp6&a!fc1MH-yx@Z-^RCoIGV*;Y^!9C5U-HYJJ|JT+p4|# z8$)^+pXp+epa)stEjHCD} z!Jy0n{Ug!C(Ux;J6Yr!a%sdx=hRf&E%S4OM$h;Qm6y2L&@U_P&+t4awx{-;zN0msW zki);}hSL}R+mGt`=^P{^gQE`iYH{cY_`cSTK8^3!&FS@CnkbK>4QQ?2JQ#NMC!n+= zn*#Ble7s03AdpZM}zB3w2E)RXRUlPXG~$D1;UP!!EWYE$oI zx4H7(#3tp0a}t4(T)OlwH;3KwRx!fU*|yf9h6Mw6Q&B5^f`y8*zqd;#KvDS>F1xR&I0NI*FUP$4^~*#bjm}WdxC|hvwzv1ER|15) zW@r%q0L+=Ll}80Knw$LmQAyH49QLD?CvnyQ8FPSO{`c?S7QLCo1Ox;&Bjw=_YyDP0 zMc!FzKX#HG+O&<3)MVu3rat;pCAx3SOGrwx!!^hUP%p3F);Xh|Vfch$gE2TZ>KT8- zo1ABF577|0;I(uM{9*?BwrN0ER_-lTV1EB(H{7d#OAg9KC1l3%d8+I3sAiM8goJF! z#Gd@;^75`COSPml=IiY2?{0|u1;@p;fm%=@O)+-07`#VtYys?S1%TN2__&ybg@r*N zm{S_uL_V796+B0!(5$tR9TeVha#S!mC57Fr*n#x2p?*gkEYGK}xHftIzMg`P)s}7_@FDuw5x~PfCWZ$$4x(Pq70gu5W1Y7xyQ4w7Wi6 z(Pa2{A7CehT?@F=N|uQ((GTH`h16Z%TpE#s1!;}pZD?$K_2-WR1Ys$6cY$K7-pN;V zaS1>`x*Y)9w@Pr+7BrJjb}Fl?GPLt=nzwyu9CD?+&cZ_QdFNFosNW_53sVR^4kqKa zy6P44-&}6Mgv|gC0`)mLF`;4+524EC_s_eqF3camWwd28m?CFIcGWXfX$`zKG@$B= z$U7)(7nuS)J_);f`Um5Ct#sulj?+!Va84?M6htUcZF6#2bfA2nKR@m3S+{jWxwf?v za7$P?7D|JW-m6+#TDj=^v@65mMh&D3tLgKK(Fz<;2#~y*ou6-dVLd>jFI#Y5h@L+x zeAq!&spw~W;JM+)?T#2skqa3zazFQ(DD!Pdgje|-u0tdIBgB`TLD%0uzk+B$1|pA+ z+0C1#+AwrF+L1e}IfgY<7-ApmrxDaDI`1TqQ)!t9U#JP;BRO4rOGb1?p>Z)9}S ztS}0)IS6a18O<4Q-lR=YCuwnVbVPw+O+vVvfHL=oH95Bx5hSB*gQ{paA{z+M%WmLQ z@PAr>9$m{(Vrl7y7`p>U##u*}iFvH%$!o7@`78KUi_K^Q>g5GJ@I6Rf1L}#U$^?hh zy0a>ayMy;yMno>r!kVa({Tv+RFs{b~4!Rl2V43^($HC^@7C~Z@WItAoN5OZIJVw=x z<^y=p6IC6yqrDP_7nHjLNz#O%B33XlF{wTTUXC}Glbf3uMM@gs`6w4g+V4VV{Lea* zF$MYg5C4pR#iJ66guQKx7bO%6XVCbwxmn`qa`UFqd0I`jc5o$n`tu$h9!(LvE*r*6 zw^Z8N+Fnq7f9HWRhjwxGp;n&3G@Mg^v1IJM`CA8-sg)P!+B!5810L_VG|UgaXD4vm z)%)MV)02ZqYtWEhDkHphh}Q{=CIL7NP_wi}cPc)x4=vVu5TWcVSI$5k!=(8}>Mhv` zUd=b=CMHA{HICEuHzLbkJmTdotxViJJlMOit^^CSI^C?EXF#c?)nB<#Cb=3T>>ekm zwRGd-Ketfb)UWp3d9Rcc@bdn^L+!6Zbaeg@++raX1c9<=a%$??fK6L}nn9I2U@kw1 zK_rZt;F5pV)@p5du3WmLk|6BL_#SH188nm*!YDwl^c|vGy5MPR=$hV0$UaWb0KkFDN3q4UBFPI1@s4t5Yd|aY5a#*a*VDr}Ngykk zXn*zm`V?m$sy2x7ej5w@a5NzEq!;|}MP42&Adb2~UXvdeQ6h)iQ2B4;gLnMfIeS3cX^x3mchx={_iG(x+!I)kT z*xZJt1OZz|jn9#%|C86SzD7T(W<-znIl+)7*V;vErf)>T?{27?BcXG>#m5&3NU{Jk zrwWKq3V1(AaK=E*fw6XEX|aMgzp6YW6#9b#e_{dM{UrEV0$lxbXs8g#G&qrdRnUbA z@JkD6?dWJ6h&k9SI<5oW`rZ`Im;vq!k_P?H4o_In<$qc@+llrJ{_Vy00$6d0$B+3G z6%{daT{whlaF~Pc=FO9#jS^5}xB*Xgf!Tx* zoD>i}X!RA;)rn9*M?L%zd;_P%xUn}|htqp^jxJRxz72{^8GU_<>gsB|YaGwPsEy$u zW*M9k`1{KLVCcPrqo=0_zY;(UZoQVP1Q{1}Z4*mNZE&jLy{iaNM;nnmwqzjlxf8=< ztNJ%#a%4ZSv$od5p7?OYc;m)IiR6Z$DMu8xH;WX$T|UK*d>Q^=(RCSsQ9#I6H@ zjyy!pvjh}h+S}XHKmEJaO;={XK48DZpW{4QySocJ9)W+|W@gTja01U-V9$O4e2y!N zVRZ{|QDSChW=}Rjpa#5vn3WX+goh%PhsUr+LgMxJzP`=C+=JK>Gh!s84uwp^@8>Xw z?SrEPtl#VFyK>QjDEM6;KOk=me0q3_PVqwmc=0kYa0bds1d;-~B_u3-{@l57IM9=P_t}{~MHLB&Wcf(g z!eX_Hm)>~JLwKcb>k`~zlfzh!AQtj+`pZJ~I0 z1}`YWj18fU!3_@cwX>6bYy;;437hx+pS3Id4%aTR0|;YX-vwdh7id57 zyRFgy4*UwH`z`8tzrwuyh+F#e43)sXb|8d1I6HG&>C)d~p^~{N%)d}_(DvN`aW#ow zw;i>@hlYmq_`#szg-jYhsj#5HVz4OV^|Wewn4G0+59nzlm0Cx=LOlxMx?t`S+?YXQ03+VSp15vMB^z-oSdQrN|PC z9IUHB#1G(h1rP~LDCZqDq__!;7sW9Fo>!S+kYNH`fdYgY1x(hs#xuKKJ@?ekbDf_46`<)AAX%UwGDNB_ zL@1tJMoCF&Is7^QgwE@iFTl9gBf~nmU6eKSk z_>d>e%^kir+kS;Vf{Vg$T?wG6i#rfW41oHwF~YlV?Z`FUVWwV5w*L_=Yb1xrd(I(w}L` zl{@xuW{vr>iS9~{+_<*C4*VRB)%*dBevz0MM{I4T^*kQlFQ^VD;gDIvy%)Gp!#OSv zazmSm&wc$493`BAux0}OnGJZ^$HxbNlqq(TesgmZvp5(I^T>Z#dxp3L!Uvuvq&AOXk+=YH-k^yR#b)@-_}cUI3cTB|;-ti%A!#-khBh0@^gZqV15 zgZdES-HS~pSJ#G-5lTpT0xrMLiQT(*5_HuM4)=G2wuYVjL{+r%jU-XfEys`50vAls zE472t!v6v(%hmGMXxLB|SR#Ps3J)G6yq>;kl-^>)d7geCvUPmXD&Sd8;~@R3``37( zuyo&AdYd#gVt-|3aj_LR8>DW4u1eKJnWU7|$?=5+>+NCis;vqrs`G)m+1*@h7F@0b zi=zBgT3YI&3)}G!o|UDZk;tqq@tti>$4rw_&U7dWlWRWullSL9n?!&W0VZqeO`+Gs zS=@k^ME$-ePQ4cPPf9X=H}fhm@HQ>&3#i>@1o?zHIYXCgj^co4oci@k0uJ2-#3n(I z{6$Jc^c(=vjT=t@hEaw#KKJ*R{%DvOBYzvP8zG|!J=7JgpPufhDGAph0AE)2TWf1; zx~1eVk+3+^nSgW}MH?E`lS zJIrf)tLEr!O-+r8TEGu4vqi%UoY&Jnr12kGo02kw7G{mUW=lw{4pn;z0{dKN!l9C9 zAbj%FsQ_Vfa9h@zeGag6q!fjd7&En9pmW6-CnPw%*?>Sr<=Ip8jEP;zkirv3V7 zJAR7AqO`J?+M1r8LU}cZNTjQ^sm?bAwfW>bX{v`%bgSp;uRqK2^7KTMTW@7G{-y_s zr4TS?C@Ow=#J>N(NPF{eF4y*JT=S$PWhldrQ05^sWtXWEMM+YGNSTQg(qzb#F&QhO zBJ)g$%u^9ElWAAxDRb|-RNwFW{`WhM-+eqC&)&Q8xj*-PUFW&ZwbprFL8Y(NV?9GI z$&Jv^sat0SUCuWx_{<|bm|)cV!|+R@Ahoa51TsD~3rigyuRTPdET<*OKMU9ab{yqU z(VEr+2t2rys2QNTqd)SrI>{EACjot!nVBDET)A>38Pm-$F{->l^>Db|()$f8eaOow zHCxn-@t2i0p$}<`2Q9B2Xd=`lPe(d(g#joiK;%{dfbtciJ?%{91vSSdZqsz~&0l0?E#0ztGb;~|XINNR?(QeKG9I{>fJ+d>_hPMI z!L&1st9lHAcw$X$tv7B==t|{IG!fT+ic)OJG-m-C;$UUHhfSb$;5t^ofdp_U z)U>n;z^LbQYz_eDtec;mo9n?AMbdiv7(>@IkN9R9NZ5@q%67hw$W9y$V7|D+H`G2p zgT{4-u!Ms|+{YQMT_)eO%36xfyO%HNEzXXUj1DsHBeKA~`}Y|ntoB7jMA#1_{~3WG z304-%&k_!;k)G|o@5v<96!IERKuM5CD{UhvJ$MCgGz_;;0H+k9*On*vDQ-c{cgw(V zTPDGHT}}&L$U_Z4xOr4wnSk8@fOk$G^-y9kGS~mwIM6@Wdvo^%)mTgRrBb%XX4^Ql znl1XqwQ9v%jc;VT1%v@RCfyv@gP2x?oQeK98QfPaS^2L{-$x!#F>MnC8d@)lH(}iP zCNMCS7P0fIxXpjt@7}$e$rH4O1nu#!@>{L|O$KT7-Lpqg1SBRdB{g`PmsM}=?L9QA zpDkmoO*#2q4(JY)E)Qgg&dac|1~sG_spi;xD*{Ll7P_(-JlSP5bU=-`Cu-XIG3Ml+ z>#_S00@vsG=aj-&VQH1KBr64*CX0Zp{l_%Tf*>w+@02#TZ>HCqR8xmiYIkx7T}yK$NLHa`?{( z=oU5mK_ODQ_}8cl|z7-?Pd6FC@*B7yU&z>rDq$neb16duwGu4M$ ztDSB25JTS}&d7tOocrp*e-mR4u*W>o)ydP=gAI`ab*>SHph=@8xjIB-i!(xxASSAj zA%3)c+Dd5Gw;#zKj1NO&Yd`=#c@>Q9r|of@ZtXPad^{R?$ni_g4elG?KR*WzDlRTA z05b&GzzU3kLot0B@0&*_pAl#u5>Msz#CHk~4xn@JAbeTT&#s4Yf@#;Ay)lYm9PRF_ zkikn(q9Bhzg%fpv2_HXFQ{n=4(E<6+Vqi+SXr6g|6$?8%BQ)&K&d&B-)B!ZX-s+8w zbovThzxEjlRWO-Jx2CTVV3uP$d>l@`bT#s!dJ|(~y14NVB_+vMs%ZbOngpx@c++wc z$CNgy6Zk6EXRZ<#+) zpAR)PURXuc^z=%)y8jT`)j;UHlnB<#Gre8a{{Dn5%>Q9|D|KZBo<%Z#t(DFNK^;20 zcXTvKiVVOC{O_iAjEsz|peniJvcSgfo}LDHxF+pc)X3Bx9$SD`>(0q$CVwiP$MQd) zymIJxEctDSigKz%7I{H5N%sGiqR-~r<6-UIjH4_OT)@g^#&I__s;*PA>+ zKD=Va=2O@er#tfP+p#!}x1N<`QIqS#8}LS|z-iywGWo~4R^O77TMMGcq&3YQPLEf* zeE56cBv{EeDyXQg&WjzuKT`jYxbb}_K%OD82xj@YqUNI*8hVtzd1&Vt8`#@7-~)T zK>ZeoJmwo5tb}C86HLn5o#()qN!*^{p#Tb9x493}hej=KnCE%8mv<}5W9;Oo zCQkYTa%u7!Mi`hRZJr@* z$|)*NB6U+UGpqb5*Jl!;?jR|WT!am)C60|sEqJ8BX$haujpPpEdABntt@;=8TUM`L zy^)eKTCe1hMy(niSV)Eed0*M?s4g1v?5!z~5K7>rk zWLpanTYxRPf#UZG3HhM}-cC#F;^noKL?L+(+O_M~*F#CtD^muE28b80o$ZHVN?d1N z$>LjL1Fps6e;1dnr?3B1!kPp5Si8U}983%~0xv-G{&NZ1&-H7=rOE)pTk`CMH*MMk z&iN}|EUYE95P&Uj+~A#&dE^!#%8^P;#XElHqHI`2jP1G1w?}5#)%@$dRF3gfx77H) zN#{O)aNvDvbCzF-@uy%tX*;9ayKe?&+U~ZBJW#t3q#3!qgq?FRo31kxZ|yj!H`G~r zm|O|+Pxp7`O&&O@sv3Le*D|P_uiw78qqKtXaTzNdwu><=-0t39Yej3!!MFzy;vXJ< z5?hwgeux!p5biK-HOZo_#yD(;Y8rV(Dj>dcMQ> zA@lYvzg$?Y?i?5yWqK>{mvftA0VP5fG1<%z8li8=-^#Jv(nNG`JWu#752PB^m6nvO zbH?NXOdqH&Sf1v`(1bf}_O%f*Rq%LL)Yc9VQ3dh7rs@v*@)to6IUqHGWjWN9^$Qv_ z?hY~p3s?=0w{LkV5Uun<58})3*s-JNM`D557XZ3|^<2RO*5N95OiWsBub{9#n`!{n z8O`?XvOwS%9JAjx9?OGb48-psVmO||2WSOYJi17U2aW6df~=R|ql%7=1-uB&)01$% ze}4@|1TaIs(uGSQ5B9&g8C@Sw&$ZnsxofzC)}T0#fDR~t@_J^dMLm828kX0YzfZ__ z;SxSNf3-arjEQXvaCGGL4xb*8!-m1PC~j_kf@*Wu)zSKwTTqo4U{_}H1`nFaY^SH! zd{)!Z5sq6#);J0>2Na*prO^BLi%lnO?Cc6mS-?q@qAUVvd9C)cl4-gFg$K}w5Lepo zr{JcPeCExW1Bv3y$O2>z1dj&TQ`zSwRR+a*&bk_KZ9C84|W?LO5(eS@4 zt_wn}KFq3+p)DcmP`uH2`v}|9aej(WW|a&Bbc~GEm`8JzRA_k=U+T*|o z4X?{v0TxM{{g7%5!A1~)+1}NF!sJWR-bBr1%iN9?09=t9Xau3JLFoD-5|hC{b=@yjkxs)T|y{Z#2x1kf`A=_24RGW z#Nd`9frocV1Z8H5Q5e-l@RIe4tvYh`5D*;X!5X+72-ywC)xm3@-GI9LW%_k8%{uay zkvqPk#x81Z&iq(#8J3n{X?r2)Dt0$?0EF&7UuW%%ddy<_`&p;OaYZOCL{{#F%y8 z>71OLP%(ajO_ne=VG`Dl&I;6ZG+lvs^)O@5jPoM~Hc3S^fN)1``VrNML$lpT`=-aE z#=qL{IUtv83FrPfkGwf5p6{k~{_>X~9($VBF9PuRW5UOK1bz!!TfV6p1w88LgPIv8 z3}8Xnar2Z+k^!WA-L*>|LJfJ8u*enRbMPcW@Ehl)E+U5?cmW8yefxHcs(E?rB=Bzr z$W0}Wh?rCPguf1hoFvd8e|H94D#b^XQ+g!?nIL(?z|nvEE9A?{LNESbz^Pk2;RmCl zz^(FYI6#elRnA>)R2^(tH3Lxf82AwcOG~o;1}WR2^6SD+m9c5!Up*&~kq0))op`7a z=0MUO%g?~l#B*6AX*Z&bXuoOe)_&~i3^mXPtZIx1gvg!k8Id5LI+=Ur`@6df3FVEl ziXJc@)KEoRv-G}w53sp*(9;Kxn)|?>UsO~?q(XbV(#aaT?!r}AX0G8KcdDep0QFHzKigPowI_BP%u# z>X&Mt9JOl0QZB>$*qrtn02hDYJu*7+6cMf-(H)Lc-+oM2hB#R{Gu+maZOw@R^QB!~k-$L6*AMZ9FMX111}!Jyv?xx; zr@ddG8N7~!Ro_M|Gdz^Xj~~mLnDB7;y8}TsfZlajLeL>{C=s8*it7Vb{E6bQ-GHCl zj3_#Qg~2uBNI(&RkHG@(|G>v%2?+^jUY+X6Si(~9iHpmN+>d5~-)98GtrLPm;p;aB zj|0i=1T2uO9~ycge+C93$Z%}<@AL<+o=WbOkd)j3@Qc7bhbKJ;EQTsD77rda#XUFe z?K{S`VRkVpd9(}Foh2AwE{*td8dd4{@C;x5l63jGKJ)D%L9#jj=#F?tMNmrtt|!oY zD4<(NvdAMx@>;wq98%f8>Ir7M+V8X#njQ|5a&rG1Z4;%wV~e$|b@a92AQf&VFco*w?SCzb6WfH4-#Y6#7dx43-h^&Lq%$ru%Q|wAmHyLm@ zHa;%60s)lVNgaY^0~8Q}Ih23HuB-(a;&?75C;tstp&m*yeJUuIaT8_# z3mWjZTp*fXiqqf)3{pCABG))FE$txM`^KlIMg9lckkq{wVlD_XJ_nrOKs;K?!2+u| zIb$7$(a(?vr|dp<_D|sEqKXLp8juC?5s5=H(~Jp31)$K&k4_x^#}=OcCT9cm0O=N{ zf0V%&LiP{|q)6xX+!d-3(iNzOi*Odi>+`7`Yc^~{q^J!-lB2|%aigJYbkYGVrh2Ma4 z#{<`I{rWhuJQJZ5>N_jwFeFY=^`PuRr=fC$^iwE7lc;f0VGO?>OCC7+BwYd@kgJ8z zL`AHBc#Gnsd?xC$Sw{#K?rsLCrE<|9md49i02m&Utb?1cFsQt4ZDZ4iR1gCTiZo2V zSgo!=GoK!{;3<`dbA7i>hM*`Y4v{bW3B8s;T_YTTyUIvbR(A98iAD7Ys&7r-u4-Wz zSQ8py6)P;1B`qq1I957nA!E#KEqldG> z?L_syGD?xkw))z#O?UV=n3zs&cs9aaII)`(|#Gt~gwvWD>XJ z`vRFP-F7o}5|vP%Za!EnWIQlt10a(Ny_Ra0mX^LXC$a$JibzJg1*|Gy%C3E*Z#Hdr@s?QVpKXQavQAb*gBG^m_Z=M_ToUAw zbZnudO#AbRLmyS0L7oJIHcml%BCI<=4y6DDARR#MFaVB{HVWUp^3jxE91lgwCNGZ8 zT&(WPWP43ptt8i1u(-4&0b5z8zcuVJ@GS(vYvG2fJsF;R(f~myIZPM|O#N+3@coL7 zk`Hno%bJjW@JV8-pp~j;>J0n7clda9Nu!Io^5@q3A>F}j#m5O)#~H;g_}h=+5n z5R@3env(hfQ#dcfkpymzVV9QN@#HBUVOKt*j*PBp9^tYCgPwC0ovY8gyDdIJHGsWR zYi9~D0vzZGCnBjhP`SbK>H3=l0fg#DXkrn!a0b%fxj*RFMVMoW2^O7_aA^3d@l`nt z#+3@E7ir6l?4>%qD1cu{=?z3o#kGbZgZ+e|AqR|{nZrmY66mM!LUei=mKyH9**o)a zb;H`5*{wkiM}B`fES@eQlZV+pK2#`>qGMvv4yb*V#2`2yVBHhM<`1wE<)C>RC)GKD zS3b{ddozfH)_86X4i`uqw5?6i$7oh)ZcpqpTpyGWT<+hyHw()NDV12z4089yEQSga z=m5a;mF3s0D>i*J<$szD?!nd!VJ9jMq;*u#M!eRkUC}kTV48yJV-062VV_YeO|+7H zjaaMkUl!E$B)yW&CMJ}(omGE-CQmgAV&W(UVj?^=xG17{5YL-4;10m^Q7mTE!g_G? zDLh<93~@x{h5OUN(eXSW{mBI|e04n9S&xC55g_Worc?up9|4OAdmaK3gRo)J^=3Xi zQOIQ55dR5`6rDOGH*&6j$dtZkwDiTA149y#66PN&#RRqqO=kq9|Q1V7cO`1fFx&#RKG2UQU7%HSCQsR;I)*Ss3`DS{8=ZEZziP>qFMf#>>k+k_w7JMsZ0l)7;pld2GZ`}1nE9&G3Kt^>CmbvrWwIRZTZv2vKXP&GV z8xxZPXB~RERBdbyVoUsH08b!*FaV9ZFUk-zsu+K7-$dW@>kFA9rkVC28&`G1 zm{I|*3C(r^AWr-P0zQBZ3NWumaibcJ}6jhN} zM^t-Nl?NWdF76qWYL$n7&8ecuyazgs_}jn*41%C0rX)fM0AK9lhQ+~cry2C22M-^9 zf_RREc3fFm`R*Z772Lj^iulZJ0O>5~)Em{8^VsBsXvcymt{oZh=x?a6C(+oV*P{Mc z;B8Y7TXPAnuC8l70=%r&hal{O#D)Wv;EsM*{_`I^yPrWAt_n7NvuP+63rY&^v>L2) zASS(%jMUU#7)OY4imIkJ zgUtWkK&)6TNC9qCTh|kOAXpfE6p)OEoft7Q<7>M&9#lIU=;X(lZ`(V>?<`C2;ySZm zW5_7N-UYv63a7cwz9E!j16GpLuO&N7NH){@Oys8*62BErQhKID#>H_H=fNorI1h|T z(G)7W)xRRZoIg?OZ2LWXnB~CJyhQnKe<7;>tc92BUlZniDM0k$El ze@{qisxU?dpsMKp{{1+vOKml!2xDvdeq1<%fF$PlVZjhPKHGM0;0Nn-kC=4gtD@dW z8H-i`6JOXDK^{WF6@QBZ6|CdYeFhp<#Rp_Q=^d70wdj?pLiTGl4hTjaOKh%i-Mj~< z=cuTkkEUJ(WP3C{pWsP^Xt@do3!mKF+wLV;71=s)rg}-d zvVo&Ja&Dw5so-tf<85E4njP?B`IdiEP zae$C59o$Q{wf)*fji26r8868R>tKAXmFg$29~1u0<(-Gd{vg|t+L_N&T;{_E`wpo$ zZFvh%uLJzHl)DeQVQhXf1bMJlS5fzL`kNws7=k?_9(}|OY{OZk!4pGk96?$gUYeqT z4&_NN_(D#PEcVg$l=Ow*<4V!j_k|D&k~dbHN%xCDDQ-%*cme?uDK@2*^#~rFJx~A* z4Gp#{73#*9c#scgBtXLvf&@iX-tgYtVyQ4#f$-bBvl_;>RpRhHK;>Iw<}mpK8X)L6 z3SfDY=hl}X%RrkXJMA33-HjV$D-bOl3IpwY*4Yt<>`CHkX!!{Bh!CVGQ6y}K=+VLc za0cE7JaktKa)?&aap-c#dqDbBsx}lxLO$5n9`M5HG^9X1`UwwmQP=9C%#V<&3aK39Zpz>1BNsFm!x!vX_+NSG)4T&TQA%iNvIj ziR9YvZUrI+3gR5V9q!n|tYU~Y0%+YsM<`)$p&RYxV7cF1S2gfWgpdc|^uRLgJmei542!%HBw58};(0DS@sJ8&I+A1^=w5=qw1{LXKlk(=SRzRyNM=am~nSws@bO zqQZ*!SOtd%VIrWdYf8@`pA*jy?)W(tkLPZY%C8b+H74T0QQE(O(e*gXo+yq-D9J$T z0{5bv23h2}`F0s$r3=Bj7Zb77&JoWBz=0ml7mPw^anL6tAF;8{qf9RNwS2pC8VOMF zN@ak<qwTJB|Zv;YRjqZ#T5 ze)1fO(-S7Ua>=bhh*Ut^=L#<87B+ckZ)-clBxnHAGkflg&Uq9K)D{6kxK}4AUx@BObkd`!>A+eA|IZ z(yIV*4#q9hjoY>jz=~O1aZFWWMgQOqZiY$c%NI>_kD1Ru=i}z~z`w*X`ORVQPAE8* z9kjHiKx8lsl2SMiQ!+@$@<+joIW~J?xx(Q$E=Wg+y~nUx{)2X3Cq3!;aI|~b!lbI@ z2nsVHwG{D;X-2Pzv1DE3K2~;qDXCC2XnLR`>>eGhBL_AdEdi$CF#vD|01z5o++k#7 zMCd!%Fc8bOii*0(L}UN{6e!+2fWOv03S{p@tsdzz z!_wtW>%zYG0Hk3j?%xBGILV;q)#)e#dWaPc8$BNKD``oJ7X|a;xk2_ZwyueFHyVm#!9oD3VMjtaBiDE$2C|il*2>$>& z;LV0@u+IsNm56VI5ITT4BKk-HjPQNv zKfZ}y@x%t}MgemIair|rDTft_H-8zyP)D&kMK+(oaEk zw)=duSA!J4Wxw)fiV+d*F=LIVl{ebs!^i=vxB^7bq)ZEu`JWYch9~+75p1I{CLR5R zg{|N45FYN#*6qx9ysaGbf+^?fUk6^5V^Qj*b<#i1CjIUZL?O?jnQg@mHa`}6md$8q zxU;h}YqJdA+Z318`#fxxTfKi+0$(9w2t`K^^9GDLCJ$BP3;-S?if8rF-;Yl2!!VGaP{{0i1t&y0>a&+#vI(rB6n+jb{F*A|(T z7Z|4umL_fsl%S79{&pNizXHRv1{{+{elza=4mWNRGI5FI)FjASdFDS1A0!$`qL~i7 zxQ|#E&p;|wz{x~}oM{K(1h=6KdRB~P$9iZh zl@UxTN?SMme*ADdwjs#aD{inyKV$^P(p91Z(alYSn2LU1R;~ztIQ~Qenrz{^pMgvyRfU2p>~t#^rtPCu0%qk_W8jiaf@!*Fud{;SqeS+u2#oWi z79ZQ2|HrrBCW1K{99=(xgM(K$TcNp(Xo2Xzs?zt7F?62-oZL(ZYt-uyfqKzk1SNw& z1|S5&{f0^2cm#}PInj5F81|4Be>2kL8>sEW=BZh@<6l8|a~uWnfwv56i%71S(IkR# zqrvD9;*l~34WeNbq6aZfW4C;Q^MZnOGZ6C}5hhV|UR`0x$#?W+1^u|rOnU2K$R+TI zmciw-W%xSm&4FAiz3z!Q`4fkibHuWL8fLf9q{x0*&9S}df&40u6Wj?q8RAtGe{|b0 zm^Rj)xt`7!sF*&i9A4|m6v)?l`un2xqvQXcmOVu+_s;|Ny>}lxcpNyi@J`HbZt1Rj zbc>l^=+@4<0>4osDINFh>_MmeL1AwQR8&T8tgJ%S4nYEk;qHfSw^u|Yz0DTin=m<$ zw#)Be?#E=;ucfYhE#j*qS9BNf;^%R4G6(!Gw_>kjC614uFUrf#&Tfc}=kVX;923J4 zufa`$;un>?4}4jToq0y$hfvDKH;cYC0}4 zF*ZHD@qhmc7T)ZGI@@4X==qo(;XOK77l}hSd%)B59bWD|OhG7c6v4fIC-}x2Q~s<% z)->k{W z(3(=vEcP&B;`lapWOu07VJypIt}rmnTu(p+PZ$z7Z+Llm@i#1xB_`gDI{IK%Am0+? z+=Vb}*fg0oL_KoT<{`HVxe2!OeP{@zi277cM#nQd&0a=?8_F>6>^gLXw()&Sx?hHE zNAf0BP#_`?^Z*3KL`Oe>M418_k5J5Lw0IYC9UuWGIURoAZ{-^javUug7~7tQQ5Hl` z#aNK^UWaVkcm0OM;$&*d3-OHpGb~@8@`p|YySlho;aDP@99oEUk;_w@At51GO-x{0 zT7TzGBrg%>$n}+mFj<)EAwBW-5@uTu?ODXevX#P$?;LFQ3>wCId}x8 zk&bhWn9(W4(pb5K;(2Jd(0aV=U6|Ryf!SN(^B8({T3cKCRXX?-JZ%FUsSGbp>WKw( zdr+V(HHx%GlfkMaNS1u2FdBhh=(UlYgS4FY$P{ne+4hM?dCB#{3;9sHj$OLMymBIW zxAt5hJYq?h4+jGh#O#UlkN?~P>(K*zdztaL9{aaN0& zd_l6?AdcTc;TI4TM6{IU`R0PvgHC&6V`J_1eN9! z2aVVIu^jr4{3LJ;(N1hWVkjC2HAkK)!bm0YSLv8QBO7T%zOol6W;cY@69sph91ySGhD-=(?eD16FDzb5)tyHWm; zJ{HW<1sJNu8>ay2Y5=q0*En%v%e{S?JN|kBC@@W>BV)t*^{YRE8yM6k`Y$pQ*6%}%>Yz$( zY5!z9_1|fT+&$CU!~L4AcAq`mv^^cHHpjl#)kXG#mGC|Wo33$&tr^AWDiqozGGW;e zRt$~cdII$2wY4)P^?%>*{S3TyG;^n`G!q^JDm|cT)brOe*gE0!T8HivmAF! zXp6vDo{{_oGfckUiz>4m#0@E%y1H0m8(J*gj8!rCvb?H_?cl+HxP+X_SV1kGAa5aI zR@S4YNvdhH`!08eLv=vtA&NVe4Q3y0Ahi=lLsK=P0pa&`h;S;1V?P=sAf-?wwU~5d zWHz%?ZQC|toq&*lXj}I)|EG-YXlD(03aM7orHeE?hqEkHF~u@*GHsNv0P?@oF#PV> zUuLB*k64H!w^%3|6TTIJ3c(#-B0+3-5YGj@wG#v(mH6f@#b=u`P;rtg0lC^uk;8kKqcLnG(soFRi>TJ!e;+N4n=Hu_{`yN}> zBDbS3o6ZBL%g3<&8xa=PZsf)DXL+j#iLn6tB zFLy`?23SXi&_DaN{IO=1MUUHCQ_;{l*E_Qt2ttd%X>K@8q{N$ZLIDcD#gc75sBnimPQX zE(Hj6p6722@lCGQOCAG`CyE2<{Q@{Zur&e=-;U!KK!VxJG=sQqNi(LwJ~}8W3QFTW zrpJ|GnE5bY|D|P(+Y+=)GY43$yx(J%nS)3R)~%%9;P7-!kG5$dJY;zDk~{tz#AvkS z>xZk^02sUUxi`NtHceWP+{a*e_c^UztlZWgA=&+2pVKq&4_|Nh+~x4=J)$5O&alFYEj|^1MJs&LC^+%+Fe9yI?y`aDUkNV5ru~ zo;10{$~asP2@MEye@moJ?=r>LNypm;0@r+kE|aLSf>R7W54$HApP`~L@u-cP|2 zg}3cJStDqi6OLIvRq*m#@j@E$#=)cu3QFgSg=WeBA5L8DG)+FfBsCVeg;^%eSMe!UVq`W zbl64~z1Pmcoq~?ze9u2>vYbKr+`@u>X4}HhISma33yU!UIlvLN%Y~aJ$-QB#Q?9?y z-}~p4Q8U;=XXFGw784W092u0DkT8Hf3y5PL90hMzj~?THg^-{2pZ{A_(menWQ#*IA z46d}h#XbMkk62}srmW-^6VMgc*0S!z-x7Fr^zh$z$hQ`s%Z+wm@T|O$Fx~L~s~(4j zR@L2EwkF8b(ozt0-W6iHVMJR8W#FpOzgBeW>{E#I;|pECA__2pc@Ud256PJVr2`2z zzz4IXV)^gUt{lrbA}`0M+j{x$eXiEzp(PW9M&A9rM405m_Q*>QV$Ez z`3mk$jPVMW7fp$4waD39`@Jk>6D{8!^Y=rs^LJO`lu#PEM@+0O#97aDL$*>dsT3-? z;*A`Y#YZzt+wRPmXmW2-X|4>>&hu?3S{9P(Ql(=5sB`T1jeTRuY^y4}b}`-(AcW^eR^Y&Xwq_9CVi{rU&F z{6T02Q`^s;EW|UxT`0`}%_|5X? z42g}}+FF>X{U{^`fxQQT?FxIxvAEU9Fh2-lg7ug2W4EiX{Mh(6__5+LkJTGWi*8n} zEMD9#-92OuI+S?GYrD`7(_p!j+qJ}}Dm}gy(;0UohryUp){Y3uM*kXbhtsrdr|;>S z{%^Td&Q&sLmcL)&L-xamBT<~#9S_Qc2d-diA@r3%9)OJU{a83rTG~mG=a#;{?VJX= zfNRxNGc!ZiGLfFl8jH;{ZC&U zwLa(yQ0R(=x(e?@Xj&J5WpdiI;^r3hTgO~NJ(D=tuhO$2+OJ%`TLLo-9+kf`oDd#c zn%dr3Z9E{Gy=Krpy%HE!)1OgJ?SXOM>Xor}zJfoXq72~INJfpWz|~eGD;t z?aJ+6axS>rW_14i4foKn@1kKN)*@ABU2w~CFv#nZ{s9TA2T+bqoj$!v*34{Vqau2I zt$=K#izUGdDIC5MDrZog6yn9>Hkuog?N+WigN{*X9p1j%K&|!Nd*biEvKz|xleGnc zb3d6K16`7+iG+=P6PHlbW8rC|x$;0*>DIBYkX;JCsF8Eon25a)e@p%ZR(|%?#bLAFhY~o<&!RbX*sgYlMXY)-|NxE z*g)U>JIu=Tl08WXvZ6ly=@LUgyD57B<472f`8oA3as#33Zc29?^cLd1F~jWNKYVR- z=qrhigUZwur)K*+-_;#zd~1eSkLz{0u9II!f6PmC>(PUMU$syx`SG@U*`F4dZJ>#uZ@(T{xKX&*uh``PE5qjA zql?*=TDm^NhKFaHhIBpG7Yis5yUWTI_3-<)a_5JhTlPsF2zayT!o09nA=v#S!_p>e zXNfot|GClwyDKl`rmb@ceR`+rjHlDQr*V9)?X`bC-Brk-Yu#^Vvr6}1VLUxev+7oZ zBd?rzAC;G*f}z74Ztb$4rly0(Lmhkfbp4lQi~nK)nuXHt>hDjclfL3&aLTabpl|V> zEw6d6eXpn8dD*a2EJkmNWzR7~>&J(;j0CInSKO-fZqhTqR=l%YQTy83WZ|OmJ#0Vs zI$qdre)-?Lhn2K+qOqmL2&OY+dh9RC2X5i{XUe2U>60nEWyLpP!OhFuvuC(3TBW@{HTp&%T$jF*PA%0i$8Bl?+gsI#9^Oi%io*b zHtxxfwvVe(us^%Y44j|a#$lU3D2!n*LbO|X@K>ws*&nqR&onpQFrK_A%~&CG_tRB_ zip9AO@58qy44xRw&6(J4h%_{?=nXtK%hh+ODJ6A5cm15ad{(^?K@kd? zZin1{PZp(SP|=UOgzT?9HSy?C&dH$2(W@hyv`jP1+EP>orn41JpJ$jpd9luLj6Jvb zeOsHI#fzjQw)5Kt{gz`-oM_21U3gsfSBwbvs$d!bOXV>CEtWX22swee1q667lv9js z-g><`fj!H0cLp)pL6<`AVgVzJc}Cgb5-?othvhpoc1#p);U}|wT3cI{jvxPuwl6X> z>*x(c#QOW~>gyb5EVDbp_Dk2a2lS~lx3#uj9TVDg@!|!=FWZ9@Dx@Qho^*8d8Gb9e zCz7esprpUbg=hVr*zwIoc|@QKlw2212mph(d@nMR<=n*^yWoh~Nk=z1lvuvvo3vr{P(v$0abrQo-a$2{ zBr_wja6^Q4Bn9mA=Q_+28i2KIKGOH9`blSJKh9rV_3X`?M>tj>G!I>0+87HC4gTg$ zGj!H(ObUKCWc1CdrmN0pHkiJWi~BZHTc`P}v{sX}sZ&A&4p@~T^SAD;UgOI1S6i8@ z4{pEggc&9z1e~?Qr{9`5+@77OpqwdQl&^o0mbUX*n}LKZ98=GqKL;1qu)=P>eEr(Jw6ydRPVy|V#E@Rl zs2josGTVj?u3VYE?%8)#;TI=c1^>BY>Jk^uDPFlK!tfO4}7 zb9dWn+%J{pbeMV5?o|6J_Uqm7whgYw`+28)!%(k#DONG6 z^rMXq749@{Nm>V9zj@K)(fsBa#gZH42_% zEzwK1xiJ5df7i&h_@Iw_-IQF^bzeRFa_n?*PR!dpYITd*q=W#Qfeaf07BK(BZe{g=}LKJM)Zxn=3l!Wokdo%QLlh^KWzCa%eP3 zJhaB8@!GI8C~r!Y%f~iFG96MrdC{>foxOXswE>|#8ATchk7pHH$fbs+SaPs3(svF<@A3vs$#mPyT)@f;J zA3uJS1!1bF*M2P>eC`o_eYXDoemG*@R%Ol1wGPrz``)eM=lXhI^=J3^P05RykW-wd z_HV5@seR+yOSYZiqgfqhD!b^czgIJ~wuU`;sQL8iL9g<$B;Rc(f3Nqx7h*9q19-y@ zgHm04`T2doNV-I#-=JgUP#8wjfHA^ZUl@@NoA>bNi16^OvM_1K{s2cZ)Kw6Po<6=! zlNlMJ7((I>)d-!^hw_C%K6)U;_AYJ6*;iHf#QKeM-vM<77AZ4&wgo?t{cexDyARnt z4P9Jv-#n^4@+#x`-FX)Utzp}3hF3m~iQV|<(-)zuP=6+fU;9F(+)m1HQ_M2!SDUc zU+D_|Ie0LwVHUYG!fD>v3FL+q<`*Vk{ltpinU-8Teh79%TO*>%a1AumwTpQ?M}_M9 zj|1CejaPD)msfH~@%sev`?b;fyZ2$XlK5@fApS#zOaDzSiC;``!dA?+H}1W#&vQ@N z&y_iPYCV?{%-^2EG6IN0Qh}5R0rf52|1U#`uHeMKsfs&`^K0eMU9@J=5fPX07 zesXkiX;Jf_k?6Nnwb$3Lg0a}nyyITMuP6MkuNZN^ex1lNw)>?~o!YG#p4Sbr$qqe7 zbRNLyv2tCa_un)L$>9lp*~#i-h;j{@Y!^g0z!M){?4eqt1-5RUmWAf1vcbMU5fPag z!QEcbDv?e43l@{YyK@;wS`tz+1{ePGiTAhvAg|~jU;Oeh5^`%c<>U;M^jJ0V0xtID}!R%sf1(&wr=lRhLu^lIMvly=1 ztZ-0tk8uLG*?G&YiYj5nANa34FhZt|?j->J`Yeme&0Iia+D8VuaY^y))r-%u8F&~~}{iJPpP-d;?R ztU~ka)~&bt)}E~`X~(A$O9LJUK~TxH(Y)vR^L?ddmND_|oRf`WBC9MiVqA`*pL}Ve zAK!by!0b;Pp7X<$@kpyf`+NElQV4RIuczJi&h`b3B6?KN5{9A8c9^(l%mYv3Mpw@d#1%eW~?QTV@k~ z&GVDBMY>SYaSl#gVArl)OA*{q!Qr(F#U>Dj519NBayXTimewt%W^5)RxRcpakn1o3 zhxGfd@jeQnLH!u*x3g$nwFUF>Mx{xZPr`wobq6(r)M_4D+Pd)K7ZRz-ndv>|2fvQ~ z>OV0GsD+*W!Ep4K+4$lM;pm#MZ&em#r5MoT(CPpG27+DJ#Z(VBH8xt}TpQoOKzU_l zN(>`g)eY#5X-d8Y3%LbsO|FBJZf>6Ijt8GeMA7{2$GJ~$9%NH)$t*i+9OWS@_F*kU za>(>EPfsVXbQG!CRnu5?8h3`{92~m;Dd}H|vm3d3ee�vR;K&6I(096*A$1%y`+f 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 KTPu8`&;J5S%HVMT literal 0 HcmV?d00001 diff --git a/docs-src/figures/benchmark_knapsack_a.png b/docs-src/figures/benchmark_knapsack_a.png new file mode 120000 index 0000000..a88935f --- /dev/null +++ b/docs-src/figures/benchmark_knapsack_a.png @@ -0,0 +1 @@ +../../benchmark/knapsack/ChallengeA/performance.png \ No newline at end of file diff --git a/docs-src/problems.md b/docs-src/problems.md index 579385a..98d92ab 100644 --- a/docs-src/problems.md +++ b/docs-src/problems.md @@ -45,10 +45,6 @@ MaxWeightStableSetGenerator(w=uniform(loc=100., scale=50.), fix_graph=True) ``` -### Benchmark results - -#### Challenge A - ![alt](figures/benchmark_stab_a.png) ## Multidimensional 0-1 Knapsack Problem @@ -98,4 +94,26 @@ By default, all generated prices, weights and capacities are rounded to the near !!! note "References" * Freville, Arnaud, and Gérard Plateau. *An efficient preprocessing procedure for the multidimensional 0–1 knapsack problem.* Discrete applied mathematics 49.1-3 (1994): 189-212. - * Fréville, Arnaud. *The multidimensional 0–1 knapsack problem: An overview.* European Journal of Operational Research 155.1 (2004): 1-21. \ No newline at end of file + * Fréville, Arnaud. *The multidimensional 0–1 knapsack problem: An overview.* European Journal of Operational Research 155.1 (2004): 1-21. + +#### Challenge A + +* 250 variables, 10 constraints, fixed weights +* $w \sim U(0, 1000), \gamma \sim U(0.95, 1.05)$ +* $K = 500, u \sim U(0, 1), \alpha = 0.25$ +* 500 training instances, 50 test instances + + +```python +MultiKnapsackGenerator(n=randint(low=250, high=251), + m=randint(low=10, high=11), + w=uniform(loc=0.0, scale=1000.0), + K=uniform(loc=500.0, scale=0.0), + u=uniform(loc=0.0, scale=1.0), + alpha=uniform(loc=0.25, scale=0.0), + fix_w=True, + w_jitter=uniform(loc=0.95, scale=0.1), + ) +``` + +![alt](figures/benchmark_knapsack_a.png) diff --git a/docs/404.html b/docs/404.html index 456b56a..79b6b0b 100644 --- a/docs/404.html +++ b/docs/404.html @@ -14,16 +14,14 @@ MIPLearn - - + - + - - + + + + @@ -132,17 +139,17 @@


- Copyright © 2020, UChicago Argonne, LLC. All Rights Reserved.
+ Copyright © 2020, UChicago Argonne, LLC. All Rights Reserved.
- Documentation built with
MkDocs. -

+ Documentation built with MkDocs.

- + + @@ -154,11 +161,8 @@