Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S262662AbVDAIAe (ORCPT ); Fri, 1 Apr 2005 03:00:34 -0500 Received: (majordomo@vger.kernel.org) by vger.kernel.org id S262664AbVDAIAe (ORCPT ); Fri, 1 Apr 2005 03:00:34 -0500 Received: from amsfep13-int.chello.nl ([213.46.243.23]:29969 "EHLO amsfep13-int.chello.nl") by vger.kernel.org with ESMTP id S262662AbVDAH6I (ORCPT ); Fri, 1 Apr 2005 02:58:08 -0500 Message-ID: <424CFF86.3020304@amsat.org> Date: Fri, 01 Apr 2005 10:00:06 +0200 From: Jeroen Vreeken User-Agent: Mozilla Thunderbird 0.9 (X11/20041103) X-Accept-Language: en-us, en MIME-Version: 1.0 To: linux-kernel@vger.kernel.org Subject: YABM (Yet another benchmark) Content-Type: multipart/mixed; boundary="------------000606090301080509030801" Sender: linux-kernel-owner@vger.kernel.org X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 28684 Lines: 487 This is a multi-part message in MIME format. --------------000606090301080509030801 Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit Hi, This benchmark was made in response to a recent post here on lkm were Linus indicated he would welcom pretty much any benchmark. Since there are already several database benchmarks, 3d benchmarks I opted for a more down to earth approach. As such I am pleased to announce the 'linux kernel hacker benchmark', a benchmark designed to simulate the activities of the average linux kernel hacker. With this benchmark it should be possible to measure the performance off the kernel for its most important user group, the kernel hacker. This workload turns out to be relativly simple to simulate as can be seen in the attached benchmark program 'lkh-bm.c'. It is compiled with 'gcc -Wall lkh-bm.c -o lkh-bm'. This test has been run on all 2.6 releases and several older kernels dating some years back. Unfortunatly 1.1 and lower kernels aren't able to complete the test. The compiler used was gcc 3.2.3, the cpu a Celeron @ 2.4GHz. I plan to run this test daily on all releases, bk, mm and ac snapshots and maybe more trees on kernel.org asuming nobody objects to me doing a recursive web-suck with wget. At the end of this post you will find the already done benchmarks. As Linus seems to dig pretty pictures a graph has been attached (lkh-bm.gif) with the same results. Surprisingly the number seems to be constant during the last years. This could either indicate that the kernel hasn't regressed for years in this respect (which would mean somebody is doing a fine job indeed) or it could mean that the average kernel hacker simply doesn't do much usufull anyway.... Regards, Jeroen Benchmark results: 1.1.0 0 1.1.20 0 1.1.40 0 1.1.60 0 1.2.0 603 2.0.0 604 2.0.10 605 2.0.20 600 2.0.30 601 2.2.0 602 2.2.10 603 2.2.20 604 2.4.0 605 2.4.10 600 2.4.20 601 2.6.0 602 2.6.1 603 2.6.2 604 2.6.3 605 2.6.4 600 2.6.5 601 2.6.6 602 2.6.7 603 2.6.8 604 2.6.9 605 2.6.10 600 2.6.11 601 --------------000606090301080509030801 Content-Type: image/gif; name="lkh-bm.gif" Content-Transfer-Encoding: base64 Content-Disposition: inline; filename="lkh-bm.gif" R0lGODdhgALgAeYAAP///wAAAKCgoP8AAADAAACA/8AA/8D/QMBAAED/gCAgwIAAwABggACA AACAQACAgADAYADAwAD/ACCAIDBggEBAQECAAAAAgIBgAIBgEIBgYIBggAAAwAAA/wBgAEDA gGCgwGDAAGDAoIAAAIAAgGAggGBgYAD//yAgICBAQCBAgGCAIGCAYGCAgICAQICAgKCgoKDQ 4MAgIMBgAIDA4MBgwMCAAMCAYP9AAP9AQIDA//+AYP+AgMCgAMDAwMD/wP8AAP8A//+AoP+A /8DAoP9gYP+AAP+gAIDg4KDg4KD/IMAAAMAAwKAgIKAg/4AgAIAgIIBAAIBAIIBAgIBgwIBg /4CAAKCA/8BggMDAAP+AQP+gQP+gYP+gcP/AIP/AwP//AP//gP//wAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAACwAAAAAgALgAQAH/4AAgoOEhYaHiImKi4yNjo+QkZKTlJWW l5iZmpucnZ6foKGio6SlpqeoqaqrrK2ur7CxsrO0tba3uLm6u7y9vr/AwcLDxMXGx8jJysvM zc7P0NHS09TV1tfY2drb3N3e3+Dh4uPk2IABgoIAAAABgACCggGAAIKDhIWGh4iJiouMjY6P kJGSk5SVlpeYmZqbnJ2en6ChoqIBggEAAYMBAAGjo6Ojo6Ojo6Ojo6Ojo6Ojo6ABggGDAQAB gwGjo6Ojo6Ojo6Ojo6Ojo6Ojo58BggGDAQABgwGHgAGCg4SFhoeIiYqLjI2Oj5CRkpOUlZaX mJmam5ydnp+goZSAAIKDhP+FhoeIAAGDAYMBAAGDAYcBiYmJiYmJiQGJiYmJiYmJAAGJiYmJ iYmJAYmJiYmJiYkAAYmJiYmJiYkBiYmJiYmJiQABiYmJiYmJiQGJiYmJiYmJAAGJiYmJiYmJ AYmJiYkAAYMBgwEAAYMBhwGJiYmJiYmJAYmJiYmJiYkAAAUAAggOEhYaHiImKiIGLC4uLi4m BiwuLi4uIgYsLi4uLiYGLC4uLi4iBiwuLi4uJgYsLi4uLiIGLC4uDgYUBgAEDAYABCAGLC4u Li4iBiwuLi4uJgYsLi4uLiIGLC4uLi4mBiwuLi4uIgYsLi4uLiYGLC4uLi4iBiwuLi4uJgYs Li7/WrQIEaAAQADBQcJCw0PEAMOAwgBEgABERERERETEwwBERERERERExABERERERETEwwBE RERERERExABERERERETEwwBERERERERExABERERERETEwwBERERERERExABERERERETEwwBE RERERETEwQBAAMFBwkLDQ8RExUXGRsdHyEjJScpKy0vMTM1Nzk7PT9BQyQDRzABRUVFRUVFR UVFRUVFRUVFRUYAA0cwAUVFRUVHRxYHDgc2BwQHNgYHEgcGBxgHRxAHIgQHIAc0BwYEBzoEB 0csBUVGAANHMAFFRUVFR0cUBUYCBwYHNgcQBQADBAUAAwUHCwQFAAMFB/8JCw0PEREXDgcXC gcVFwoHBgcXFw4HFxcXFRcGBxcXFxcXFwYDFxcXFRcKAxcXFxcXFxcXFxcXFxcXFxcXFRcMB w4GBwQGAgQHBgcEBgIHBgcMBwYHBgYEBwQGAgQHBAYCBgcGBgQHCgcSBwQHBgYGBwYGBAcEB wYHBAcCBAQCAAYCBAUAAwcHBgYGBwYEBgAGAgcEBwYGBwYHBAcGBgQHCAcKBgQHBAYCBAcGB gYEBQkKAgYEBwQGAgYHBgQGAgcEBwoGBgcGBgYHBgYEBQkLBAcKBgYHBgYEBwQGAgYHBgYEB QsIBgIGBwYGBAcEBgIEBQsIBgIGBwYGBAcGBwf8BgAEAwIEBQADBQcJCw0PExMEARUVFRcXE AEVFRUVFRUVFRUVFRUVFRUVFRUVFxcKBw4HBgQHBAYCBwQHBAYABxAGAgcGBwQGAgQHBAYCB AcEBgIHBgcGBRMABQUFAAEHBAYCBwQGAAYCBwYHBAYCBAcGBwUGAgcEBgAHBgQGAgcGBwYHB gcGBQcGBwYHBgcEBgIEBwQHBgcHBQYCBwQGAgQHBAYABwYGBwYHBgcEBgIHBAYCBwYHBwcGB wYHBAYCBwQGAgQHBAYCBwYHBQYCBAcEBgIHBAYCBAcEBQADBQYCBAcEBgIHBAYCBwQGAgQHB AcJBwAHBQcJCw8MBQAD/wUFCgIDCwsLCwsLCwsLCQsIAQADBQcJCw0PERMVFxkbHR8hIyUnK woHDgcGBwQGAgcGBwYHEgYGBQcABQUGAAUAAQcGBwQEAwAFBQQAAgAFAAMHBwYHBAcGBgYEB gAFCgIEBQsABQUGAAUAAwUFCAMABQUGAAQAAgAGAAQAAgAEAAIABAACAAQAAgAEAgMEBAACA AQAAgEFBgAEAAIABAIABQADBQULAAUFBgAEAAIABgAEAAIABAACAAQAAgEFBAABBAAAAAEFA AMFBQoCBwYHBAYCBwQGAgcEBwYGBQsKBwQEAwAFBQYABQADBQUKAgcEBgIHBAYCBwQGAgcLC /8LCwsLCwsJCgIDCwsLCwsLCwsLCQsIAQADBQcJCw0PERMVFxkbHR8hIyUnKwoHDgcGBwQGA gcGBwYHEAcEBwYHCgcKBwQGAgcOBxIHBAYCBwQGAgcIBgIHBgcKBxYHCgcEBgIHBgcEBwgGA AcGBwYHBgcGBwoHBAcEBxYHCgcEBgIHBgcGBwQHEgcIBxYHBgcEBgIHBAUCAAQAAgAEAAACA AUAAwUHBgcEBgAFCgAFCwsGBwQGAgcEBgIHBAYABQADBQcJCw0PERMMARUVFRcXEAEVFRUVF RUVFRUVFRUVFRUVFRUVFxcKBw4HBgcEBgAHBgQHBAYABxIHBAYCBwv+BwoHBAYCBw4HEgcEB gAHBgQGAgcEBgAHBAcGBwgFFgIHCAcGBAYABwYGBwQHCAYABwQHBgYHBgcGBwoHBAUHAAQCA AUAAwUGAAUKAgcEBgAHBgYHBgcEBQoCBwQGAgcEBQkKAgcGBwQGAgcEBgIEBwQGAgcEBwsGB AcEBgAFCgAFCwsGBwQGAgcEBgAHBgQGAAUAAwUHCQsNDxETDAEVFRUXFxABFRUVFRUVFRUVF RUVFRUVFRUVFRcVCwAFBQQCAQQCAAQAAgAEAAEGAAYABAACAAUAAwUGAgcEBwYGBAcEBQoCB wQHBgYGBwYGBAULCgcEBwYEBgAHBgYEBwYH/wQHBgYEBwQFCQsKBgYHBgQGAAcGBAYABwYGB AcIBwoEBgAHBgYGBwYGBAcGBwYHBgQFCQoCBgQHBgcEBwYEBgAHBgYGBwYGBgcGBgYHBgYEB QkIAwAFBAAAAwQEAAADBAQCAAQBBAAAAwQFAAMFBwQGAgYHBgYEBwQFCwsGBwQHBgYGBwYEB gAGAAUAAwUHCQsNDxETDAEVFRUXFxABAAMFBwkLDQ8RExUXGRsdHyEjJScpKy0vMTMoBTU1N zciByAFNTc3HAE3NwwBNTU1NTU1NTU1NTU3NwwFNTU3NyIHIAU1NzccATc3DAE1NTU1NTU1N TU1NTU1NTU1NTU1N/03NwwBNzcMATU1NTU1NTU1NTU1NTU1NTU1NTU1NzUNAAYAAgoOEhYaH iImKhAGAAIKDhIWGh4iJiouMjY6PkJGSk5SVlpeYmZqbnJ2en6ChkgGimQGioqKioqKioqKi oqKioqKiogABopkBoqKioqKioqKioqKioqKioqIAAaKZAaKioqKioqKioqKioqKioqKiAAGi mQGioqKioqKioqKioqKioqKiogABopkBgACCg4SFhoeIiYqLjI2Oj5CRkpOUlZaXmJmam5yd np+goZIBopkBoqKioqKioqKioqKioqKioqIAAaKZAaKioqKioqKioqKioqKioqKiAAGimf8B oqKioqKioqKioqKioqKioqIAAaKZAaKioqKioqKioqKioqKioqKiAAGimQGAAIKDhIWGh4iJ iouMjY6PkJGSk5SVlpeYmZqbnJ2en6ChkgGimQGioqKioqKioqKioqKioqKiogABopkBoqKi oqKioqKioqKioqKioqIAAaKZAaKioqKioqKioqKioqKioqKiAAGimQGioqKioqKioqKioqKi oqKiogABopkBgACCg4SFhoeIiYqLjI2Oj5CRkpOUlZaXmJmam5ydnp+goZIBopkBoqKioqKi oqKioqKioqKioqIAAaKZAaKioqKioqKioqKioqKioqKiAAGimQH/oqKioqKioqKioqKioqKi oqIAAaKZAaKioqKioqKioqKioqKioqKiAAGimQGAAIKDhIWGh4iJiouMjY6PkJGSk5SVlpeY mZqbnJ2en6ChkgGimQGioqKioqKioqKioqKioqKiogABopkBoqKioqKioqKioqKioqKioqIA AaKZAaKioqKioqKioqKioqKioqKiAAGimQGioqKioqKioqKioqKioqKiogABopkBgACCg4SF hoeIiYqLjI2Oj5CRkpOUlZaXmJmam5ydnp+goZIBopkBoqKioqKioqKioqKioqKioqIAAaKZ AaKioqKioqKioqKioqKioqKiAAGimQGi/6KioqKioqKioqKioqKioqIAAaKZAaKioqKioqKi oqKioqKioqKiAAGimQGAAIKDhIWGh4iJiouMjY6PkJGSk5SVlpeYmZqbnJ2en6ChkgGimQGi oqKioqKioqKioqKioqKiogABopkBoqKioqKioqKioqKioqKioqIAAaKZAaKioqKioqKioqKi oqKioqKiAAGimQGioqKioqKioqKioqKioqKiogABopkBgACCg4SFhoeIiYqLjI2Oj5CRkpOU lZaXmJmam5ydnp+goZIBopkBoqKioqKioqKioqKioqKioqIAAaKZAaKioqKioqKioqKioqKi oqKiAAGimQGiov+ioqKioqKioqKioqKioqIAAaKZAaKioqKioqKioqKioqKioqKiAAGimQGA AIKDhIWGh4iJiouMjY6PkJGSk5SVlpeYmZqbnJ2en6ChkgGigwEBAYMBhQGJAaKioqKioqKi opEDA6KinIADgoOEhYaHgoAAgoOEhYaHiImKi4YDA4yFAwMDjIyKAYyMjAGFAQABgwEAAYgB jIyMjIyMjIyMjIyMjIyMjIADgoOEhYaHiImKi4yNjo+LAAADgACCg4SFhoeIiYqKgAOCg4SF hoeCgACCg4SFhoeCA4iIiIiIiIiIhQMDggOIhQMDA4iIiIiFAYiIiIiDAYUBgwEAAYP/AYcB iIiIiIiIiIeAA4KDhIWGh4iJiouMjY6PiYAAgoOEhYaHiImKi4yNjo+OAwOQj4ADgoOEhYaH hIAAgoOEhYaHiImKhgOLi4uAA4KDhIWGh4eAAIKCA4ODgAOCg4AAgoOEhYaHiIQBiYmJiAEB AQGCAYMBAAGDAYeAAYKCgACCg4SFhoeIiYqEA4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4AD goOEhYaHg4AAgoOEhYaHiImKi4yNg4ADgoOEhYaHhYAAgoOEhYaHhAOIgAOCg4AAgoOEhYaH iIaAAYKCgACCg4SFhoeHAYMBAAGDAQABgwGHAYiIiIiIiIiH/wOAAIKDhIWGh4iJiouMjY6P kJGSk5SVlpeYmZqbnJ2en5MBoIMBgwEAAYMBAAGDAYcBoJ8DoKCgoKCgoKCgoKCgoKCgoIMB oIMBgwGCAQABgwEAAYgBoJ8DoKCgoKCgoKCgoKCgoKCgoIMBoIQBAQGEAYUBiQGgnwOgoKCg oKCgoKBAgQIFChQoUIMABQACCA4SFhoeIiYqEgYsLi4uLiIOAAIIDhIWGh4iJiouMjY6PkJG Sk5SVlpeYmZqbnJ2en5OBoBuBoB+DoCCgoKCgoKCgoKCgoKCgoIOBoBuBoB+DoCCgoKCgoKC goKCgoKCgoIOBoBuBoB+DoCCgoKCgv+CgoKCgoKCgoKCDgaAbgaAfg6AgoKCgoKCgoKCgoKC goKCDgIUAAggOEhYaHiImKhIGLC4uLi4iDgACCA4SFhoeIiYqLjI2Oj4CBkpOUlZaXmJmam5 ydnp+TkZALoZAPo5AAoKCgoKCgoKCgoKCgoKCjoYALoZAPo5AAoKCgoKCgoKCgoKCgoKCjoY ALoZAPo5AAoKCgoKCgoKCgoKCgoKCjoYALoZAPo5AAoKCgoKCgoKCgoKCgoKCjoIUAAggOAg YaHhIWKiImHA4uLi4uLhACCA4CBhoeEhYqLiImOj4yNkpOQkZaXlJWam5iZnp+cnZQDoZgCo 5wAoKCgoKCj/KCgoKCgoKCgoKGEA6GYAqOcAKCgoKCgoKCgoKCgoKCgoKGEA6GYAqOcAKCgo KCgoKCgoKCgoKCgoKGEA6GYAqOcAKCgoKCgoKCgoKCgoKCgoKCFAAYAAgoOEhYaHiImKhAGL i4uLi4cDgACCg4SFhoeIiYqLjI2Oj5CRkpOUlZaXmJmam5ydnp+UAaCbAaCeA6CgoKCgoKCg oKCgoKCgoKCEAaCbAaCeA6CgoKCgoKCgoKCgoKCgoKCEAaCbAaCeA6CgoKCgoKCgoKCgoKCg oKCEAaCbAaCeA6CgoKCgoKCgoKCgoKCgoKCEAAUAAggOEhYaHiImKhIGLC4uLi4e/w4AAggO EhYaHiImKi4yNjo+QkZKTlJWWl5iZmpucnZ6flIGgG4GgHoOgIKCgoKCgoKCgoKCgoKCghIG gG4GgHoOgIKCgoKCgoKCgoKCgoKCghIGgG4GgHoOgIKCgoKCgoKCgoKCgoKCghIGgG4GgHoO gIKCgoKCgoKCgoKCgoKCghICFAAIIDhIWGh4iJioSBiwuLi4uHg4AAggOEhYaHiImKi4yNjo +AgZKTlJWWl5iZmpucnZ6flJGQC6GQDqOQAKCgoKCgoKCgoKCgoKCgpKGAC6GQDqOQAKCgoK CgoKCgoKCgoKCgpKGAC6GQDqOQAKCgoKCgoKCgoKCgoKCv8KShgAuhkA6jkACgoKCgoKCgoK CgoKCgoKSghQACCA4CBhoeEhYqIiYcDi4uLi4uEAIIDgIGGh4SFiouIiY6PjI2Sk5CRlpeUl ZqbmJmen5ydlAOhmAKjnACgoKCgoKCgoKCgoKCgoKChhAOhmAKjnACgoKCgoKCgoKCgoKCgo KChhAOhmAKjnACgoKCgoKCgoKCgoKCgoKChhAOhmAKjnACgoKCgoKCgoKCgoKCgoKCghQAGA AIKDhIWGh4iJioQBi4uLi4uHA4AAgoOEhYaHiImKi4yNjo+QkZKTlJWWl5iZmpucnZ6flAGg mwGgngOgoKCgoKCgoKCgoKCgoKD/oIQBoJsBoJ4DoKCgoKCgoKCgoKCgoKCgoIQBoJsBoJ4D oKCgoKCgoKCgoKCgoKCgoIQBoJsBoJ4DoKCgoKCgoKCgoKCgoKCgoIQABQACCA4SFhoeIiYq EgYsLi4uLh4OAAIIDhIWGh4iJiouMjY6PkJGSk5SVlpeYmZqbnJ2en5SBoBuBoB6DoCCgoKC goKCgoKCgoKCgoISBoBuBoB2DoCCgoKCgoKCgoKCgoKCgoIWBoBuBoB2DoCCgoKCgoKCgoKC goKCgoIWBoBuBoB2DoCCgoKCgoKCgoKCgoKCgoIWAhQACCA4SFhoeIiYqEgYsLi4uLhoOAAI IDhIWGh4/4iYqLjI2Oj4CBkpOUlZaXmJmam5ydnp+VkZALoZANo5AAoKCgoKCgoKCgoKCgoK CloYALoZANo5AAoKCgoKCgoKCgoKCgoKCloYALoZANo5AAoKCgoKCgoKCgoKCgoKCloYALoZ ANo5AAoKCgoKCgoKCgoKCgoKCloIUAAggOAgYaHhIWKiImHA4uLi4qLhACCA4CBhoeEhYqLi ImOj4yNkpOQkZaXlJWam5iZnp+dnZQDoZgBo5wAoKCgoKCgoKCgoKCgoKChoYQDoZgBo5wAo KCgoKCgoKCgoKCgoKChoYQDoZgBo5wAoKCgoKCgoKCgoKCgoKChoYQDoZgBo5/8AKCgoKCgo KCgoKCgoKCgoaCFAAYAAgoOEhYaHiImKhAGLi4uLi4YDgACCg4SFhoeIiYqLjI2Oj5CRkpOU lZaXmJmam5ydnp+VAaCDgAGCggAAAAGAAIKCAYODgwGAAIKDhIWGh4iJioYDgACCg4SFhoeI iYqLjI2Oj5CRkpOUlZaXmJmam5ydnp+VAaCDAYYBAAGDAQABiAGgnQOgoKCgoKCgoKCgoKCg oKCghQGggwEBAQGCAYMBAAGDAYcBoJ0DoKCgoKCgoKCgoKCgoKCgoIUBoIMBgwEAAYMBAAGD AYeAAYKCgACCg4SFhoeIiYqCA4AAgoOEhYaHiImKi4z/jY6PkJGSk5SVlpeYmZqbnJ2en5GA AYKCgACCg4SFhoeIgwEAAYMBAAGDAYcBiYmJiYmJhwOAAIKDhIWGh4iJiouMjY6PkJGSk5SV lpeYmZqbnJ2en5UBoIcBAAGDAQABgwGHAaCdA6CgoKCgoKCgoKCgoKCgoKCFAaCDAYMBggEA AYMBAAGIAaCdA6CgoKCgoKCgoKCgoKCgoKCFAaCEAQEBhAGFAYkBoJ0DoKCgoKCgoKCgoKBA gQIFClQhQAGAAIKDhIWGh4iJioQBi4uLi4uGA4AAgoOEhYaHiImKi4yNjo+QkZKTlJWWl5iZ mpucnZ6flQGgmwGgnQOgoKCg/6CgoKCgoKCgoKCgoIUBoJsBoJ0DoKCgoKCgoKCgoKCgoKCg oIUBoJsBoJ0DoKCgoKCgoKCgoKCgoKCgoIUBoJsBoJ0DoKCgoKCgoKCgoKCgoKCgoIUABQAC CA4SFhoeIiYqEgYsLi4uLhoOAAIIDhIWGh4iJiouMjY6PkJGSk5SVlpeYmZqbnJ2en5WBoBu BoB2DoCCgoKCgoKCgoKCgoKCgoIWBoBuBoB2DoCCgoKCgoKCgoKCgoKCgoIWBoBuBoB2DoCC goKCgoKCgoKCgoKCgoIWBoBuBoB2DoCCgoKCgoKCgoKCgoKCgoIWAhQACCA4SFhoeIiYqEgY sLi4uP+4WDgACCA4SFhoeIiYqLjI2Oj4CBkpOUlZaXmJmam5ydnp+WkZALoZAMo5AAoKCgoK CgoKCgoKCgoKCmoYALoZAMo5AAoKCgoKCgoKCgoKCgoKCmoYALoZAMo5AAoKCgoKCgoKCgoK CgoKCmoYALoZAMo5AAoKCgoKCgoKCgoKCgoKCmoIUAAggOAgYaHhIWKiImHA4uLi4mLhACCA 4CBhoeEhYqLiImOj4yNkpOQkZaXlJWam5iZnp+enZQDoZgAo5wAoKCgoKCgoKCgoKCgoKCio YQDoZgAo5wAoKCgoKCgoKCgoKCgoKCioYQDoZgAo5wAoKCgoKCgoKCgoKCj/KCgoqGEA6GYA KOcAKCgoKCgoKCgoKCgoKCgoqCFAAYAAgoOEhYaHiImKhAGLi4uLi4UDgACCg4SFhoeIiYqL jI2Oj5CRkpOUlZaXmJmam5ydnp+WAaCbAaCcA6CgoKCgoKCgoKCgoKCgoKCGAaCbAaCcA6Cg oKCgoKCgoKCgoKCgoKCGAaCbAaCcA6CgoKCgoKCgoKCgoKCgoKCGAaCbAaCcA6CgoKCgoKCg oKCgoKCgoKCGAAUAAggOEhYaHiImKhIGLC4uLi4WDgACCA4SFhoeIiYqLjI2Oj5CRkpOUlZa XmJmam5ydnp+WgaAbgaAcg6AgoKCgoKCgoKCgoKC/4KCghoGgG4GgHIOgIKCgoKCgoKCgoKC goKCghoGgG4GgHIOgIKCgoKCgoKCgoKCgoKCghoGgG4GgHIOgIKCgoKCgoKCgoKCgoKCghoC FAAIIDhIWGh4iJioSBiwuLi4uFg4AAggOEhYaHiImKi4yNjo+AgZKTlJWWl5iZmpucnZ6flp GQC6GQDKOQAKCgoKCgoKCgoKCgoKCgpqGAC6GQDKOQAKCgoKCgoKCgoKCgoKCgpqGAC6GQDK OQAKCgoKCgoKCgoKCgoKCgpqGAC6GQDKOQAKCgoKCgoKCgoKCgoKCgpqCFAAIIDgIGGh4SFi oiJhwOLi4uJi4QAggOAgYf+h4SFiouIiY6PjI2Sk5CRlpeUlZqbmJmen56dlAOhmACjnACgo KCgoKCgoKCgoKCgoKKhhAOhmACjnACgoKCgoKCgoKCgoKCgoKKhhAOhmACjnACgoKCgoKCgo KCgoKCgoKKhhAOhmACjnACgoKCgoKCgoKCgoKCgoKKghQAGAAIKDhIWGh4iJioQBi4uLi4uF A4AAgoOEhYaHiImKi4yNjo+QkZKTlJWWl5iZmpucnZ6flgGgmwGgnAOgoKCgoKCgoKCgoKCg oKCghgGgmwGgmwOgoKCgoKCgoKCgoKCgoKCghwGgmwGgmwOgoKCgoKCgoKCgoKCgoKCghwGg mwH/oJsDoKCgoKCgoKCgoKCgoKCgoIcABQACCA4SFhoeIiYqEgYsLi4uLhIOAAIIDhIWGh4i JiouMjY6PkJGSk5SVlpeYmZqbnJ2en5eBoBuBoBuDoCCgoKCgoKCgoKCgoKCgoIeBoBuBoBu DoCCgoKCgoKCgoKCgoKCgoIeBoBuBoBuDoCCgoKCgoKCgoKCgoKCgoIeBoBuBoBuDoCCgoKC goKCgoKCgoKCgoIeAhQACCA4SFhoeIiYqEgYsLi4uLhIOAAIIDhIWGh4iJiouMjY6PgIGSk5 SVlpeYmZqbnJ2en5eRkAuhkAujkACgoKCgoKCgoKCgoKCgoKehgAuhkA/7o5AAoKCgoKCgoK CgoKCgoKCnoYALoZALo5AAoKCgoKCgoKCgoKCgoKCnoYALoZALo5AAoKCgoKCgoKCgoKCgoK CnoIUAAggOAgYaHhIaJgAGFAYUBiQGJiYmJiYuEAIIDgIGGh4SFiouIiY6PjI2Sk5CRlpeUl ZqbmJmen5+dlAGhhQMBgAEDAYABAAGIA6OYAKCgoKCgoKCgoKCgoKCgo6GEAKGEAQIBgwGAA QMBgwGEA6OYAKCgoKCgoKCgoKCgoKCgo6GEA6GCAYIBgwGAAQMBgwCFggKAgIIDgIGGh4SFi ouIAIIDgIGGh4SFiouIiY6PjI2Sk5CRlpeUlZv+m5iZnp+fnJGCAoCAggOAgYaHh4WGAYIBg wGAAQMBgwGEAIiIiIiIi4uAAIIDgIGGh4SFiouIiY6PjI2Sk5CRlpeUlZqbmJmen5+dlAOgg YICgIEAAAABAAEAAAABAACCA4CBAACCA4CBhoeEhYqIi4QAggOAgYaHhIWKi4iJjo+MjZKTk JGWl5SVmpuYmZ6fn52UAqGHAYABAwGAAQABiAOjmACgoKCgoKCgoKCgoKCgoKOhhAKhhAGFA YUBiAOjmACgoKCgoKCgoKCgoKCgoKOhhAOhmAOjmACgoKCgoKCgoKCgoKCgoKOhhAOhmAOgm 4AAggOAgYaHhIWKi4iL/Y6PjI2Sk5CRlpeUlZqbmJmen5+dlAOhmAOjmACgoKCgoKCgoKCgo KCgoKOhhAOhmAOjmACgoKCgoKCgoKCgoKCgoKOhhAOhmAOjmACgoKCgoKCgoKCgoKCgoKOhh AOhmAOjmACgoKCgoKCgoKCgoKCgoKOghQAGAAIKDhIWGh4iJioQBi4uLi4uEA4AAgoOEhYaH iImKi4yNjo+QkZKTlJWWl5iZmpucnZ6flwGgmwGgmwOgoKCgoKCgoKCgoKCgoKCghwGgmwGg mwOgoKCgoKCgoKCgoKCgoKCghwGgmwGgmwOgoKCgoKCgoKCgoKCgoKCghwGgmwGgmwOgoKCg /6CgoKCgoKCgoKCgoIcABQACCA4SFhoeIiYqEgYsLi4uLg4OAAIIDhIWGh4iJiouMjY6PkJG Sk5SVlpeYmZqbnJ2en5iBoBuBoBqDoCCgoKCgoKCgoKCgoKCgoIiBoBuBoBqDoCCgoKCgoKC goKCgoKCgoIiBoBuBoBqDoCCgoKCgoKCgoKCgoKCgoIiBoBuBoBqDoCCgoKCgoKCgoKCgoKC goIiAhQACCA4SFhoeIiYqEgYsLi4uLg4OAAIIDhIWGh4iJiouMjY6PgIGSk5SVlpeYmZqbnJ 2en5iRkAuhkAqjkACgoKCgoKCgoKCgoKCgoKihgAuhkAqjkACgoKCv8KCgoKCgoKCgoKCooY ALoZAKo5AAoKCgoKCgoKCgoKCgoKCooYALoZAKo5AAoKCgoKCgoKCgoKCgoKCooIUAAggOAg YaHhIWKiImHA4uLi4uLgACCA4CBhoeEhYqLiImOj4yNkpOQkZaXlJWam5iZnp+cnZgDoZgCo 5gAoKCgoKCgoKCgoKCgoKCgoYgDoZgCo5gAoKCgoKCgoKCgoKCgoKCgoYgDoZgCo5gAoKCgo KCgoKCgoKCgoKCgoYgDoZgCo5gAoKCgoKCgoKCgoKCgoKCgoIkABgACCg4SFhoeIiYqEAYuL i4uLgwOAAIKDhIWGh4iJiouMjY6PkJGSk5T/lZaXmJmam5ydnp+YAaCbAaCaA6CgoKCgoKCg oKCgoKCgoKCIAaCbAaCaA6CgoKCgoKCgoKCgoKCgoKCIAaCbAaCaA6CgoKCgoKCgoKCgoKCg oKCIAaCbAaCaA6CgoKCgoKCgoKCgoKCgoKCIAAUAAggOEhYaHiImKhIGLC4uLi4ODgACCA4S FhoeIiYqLjI2Oj5CRkpOUlZaXmJmam5ydnp+YgaAbgaAag6AgoKCgoKCgoKCgoKCgoKCIgaA bgaAag6AgoKCgoKCgoKCgoKCgoKCIgaAbgaAag6AgoKCgoKCgoKCgoKCgoKCIgaAbgaAag6A goKCgoKCgoKCgoKC/4KCgiICFAAIIDhIWGh4iJioSBiwuLi4uDg4AAggOEhYaHiImKi4yNjo +AgZKTlJWWl5iZmpucnZ6fmJGQC6GQCqOQAKCgoKCgoKCgoKCgoKCgqKGAC6GQCqOQAKCgoK CgoKCgoKCgoKCgqKGAC6GQCqOQAKCgoKCgoKCgoKCgoKCgqKGAC6GQCqOQAKCgoKCgoKCgoK CgoKCgqKCFAAIIDgIGGh4SFioiJhwOLi4uLi4AAggOAgYaHhIWKi4iJjo+MjZKTkJGWl5SVm puYmZ6fnJ2YA6GYAqOYAKCgoKCgoKCgoKCgoKCgoKGIA6GYAaOYAKCgoKCgoKCgoKCgoKP8o KGhiAOhmAGjmACgoKCgoKCgoKCgoKCgoKGhiAOhmAGjmACgoKCgoKCgoKCgoKCgoKGgiQAGA AIKDhIWGh4iJioQBi4uLi4uCA4AAgoOEhYaHiImKi4yNjo+QkZKTlJWWl5iZmpucnZ6fmQGg mwGgmQOgoKCgoKCgoKCgoKCgoKCgiQGgmwGgmQOgoKCgoKCgoKCgoKCgoKCgiQGgmwGgmQOg oKCgoKCgoKCgoKCgoKCgiQGgmwGgmQOgoKCgoKCgoKCgoKCgoKCgiQAFAAIIDhIWGh4iJioS BiwuLi4uCg4AAggOEhYaHiImKi4yNjo+QkZKTlJWWl5iZmpucnb/en5mBoBuBoBmDoCCgoKC goKCgoKCgoKCgoImBoBuBoBmDoCCgoKCgoKCgoKCgoKCgoImBoBuBoBmDoCCgoKCgoKCgoKC goKCgoImBoBuBoBmDoCCgoKCgoKCgoKCgoKCgoImAhQACCA4SFhoeIgYEBBAGFAYgAgQgIiI iIiIiAgwAAggOEhYaHiImKi4yNjo+AgZKTlJWWl5iZmpucnZ6fmZGQA6GDAYIBgAEDAYABCA GACaOQAKCgoKCgoKCgoKCgoKCgqaGAB6GAAQMBgAEDAYcBgAmjkACgoKCgoKCgoKCgoKCgoK mhgAWhgQIBgwGAAQMBhwCBggKAgIIDhI/1hoeIiYiDgACCA4SFhoeIiYqLjI2Oj4CBkpOUlZ aXmJmam5ydnp+VkJGCAoCAggOEhYaHiIOBgAEDAYABAwGHAYkJiYmJiYODgACCA4SFhoeIiY qLjI2Oj4CBkpOUlZaXmJmam5ydnp+ZkZAHoYABAwGAAQMBhwGACaOQAKCgoKCgoKCgoKCgoK CgqaGAA6GDAYIBgAEDAYABCAGACaOQAKCgoKCgoKCgoKCgoKCgqaGABKGBAQQBhQGJAYAJo5 AAoKCgoKCgoKCgoKFChQoEAlAhQACCA4SFhoeIiYqEgYsLi4uLgoOAAIIDhIWGh4iJiouMjY 6PgIGSk5SVlpef+Jmam5ydnp+ZkZALoZAJo5AAoKCgoKCgoKCgoKCgoKCpoYALoZAJo5AAoK CgoKCgoKCgoKCgoKCpoYALoZAJo5AAoKCgoKCgoKCgoKCgoKCpoYALoZAJo5AAoKCgoKCgoK CgoKCgoKCpoIUAAggOAgYaHhIWKiImHA4uLi4qLgACCA4CBhoeEhYqLiImOj4yNkpOQkZaXl JWam5iZnp+dnZgDoZgBo5gAoKCgoKCgoKCgoKCgoKChoYgDoZgBo5gAoKCgoKCgoKCgoKCgo KChoYgDoZgBo5gAoKCgoKCgoKCgoKCgoKChoYgDoZgBo5gAoKCgoKCgoKCgoKCgoKCj/aCJA AYAAgoOEhYaHiImKhAGLi4uLiwADgACCg4SFhoeIiYqLjI2Oj5CRkpOUlZaXmJmam5ydnp+a AaCbAaCYA6CgoKCgoKCgoKCgoKCgoKCKAaCbAaCYA6CgoKCgoKCgoKCgoKCgoKCKAaCbAaCY A6CgoKCgoKCgoKCgoKCgoKCKAaCbAaCYA6CgoKCgoKCgoKCgoKCgoKCKAAUAAggOEhYaHiIm KhIGLC4uLi4CDAACCA4SFhoeIiYqLjI2Oj5CRkpOUlZaXmJmam5ydnp+agaAbgaAYg6AgoKC goKCgoKCgoKCgoKCKgaAbgaAYg6AgoKCgoKCgoKCgoKCgoKC/yoGgG4GgGIOgIKCgoKCgoKC goKCgoKCgioGgG4GgGIOgIKCgoKCgoKCgoKCgoKCgioCFAAIIDhIWGh4iJioSBiwuLi4uAgw AAggOEhYaHiImKi4yNjo+AgZKTlJWWl5iZmpucnZ6fmpGQC6GQCKOQAKCgoKCgoKCgoKCgoK CgqqGAC6GQCKOQAKCgoKCgoKCgoKCgoKCgqqGAC6GQCKOQAKCgoKCgoKCgoKCgoKCgqqGAC6 GQCKOQAKCgoKCgoKCgoKCgoKCgqqCFAAIIDgIGGh4SFioiJhwOLi4uIiwAAggOAgYaHhIWKi 4iJjo+MjZKTkJGWl5SVmpuYmZ6fnp/9mAOhmACjmACgoKCgoKCgoKCgoKCgoKKhiAOhmACjm ACgoKCgoKCgoKCgoKCgoKKhiAOhmACjmACgoKCgoKCgoKCgoKCgoKKhiAOhmACjmACgoKCgo KCgoKCgoKCgoKKgiQAGAAIKDhIWGh4iJioQBi4uLi4sAA4AAgoOEhYaHiImKi4yNjo+QkZKT lJWWl5iZmpucnZ6fmgGgmwGgmAOgoKCgoKCgoKCgoKCgoKCgigGgmwGgmAOgoKCgoKCgoKCg oKCgoKCgigGgmwGgmAOgoKCgoKCgoKCgoKCgoKCgigGgmwGgmAOgoKCgoKCgoKCgoKCgoKCg igAFAAIIDhL/FhoeIiYqEgYsLi4uLgIMAAIIDhIWGh4iJiouMjY6PkJGSk5SVlpeYmZqbnJ2 en5qBoBuBoBiDoCCgoKCgoKCgoKCgoKCgoIqBoBuBoBiDoCCgoKCgoKCgoKCgoKCgoIqBoBu BoBiDoCCgoKCgoKCgoKCgoKCgoIqBoBuBoBiDoCCgoKCgoKCgoKCgoKCgoIqAhQACCA4SFho eIiYqEgYsLi4uLgIMAAIIDhIWGh4iJiouMjY6PgIGSk5SVlpeYmZqbnJ2en5qRkAuhkAijkA CgoKCgoKCgoKCgoKCgoKqhgAuhkAejkACgoKCgoKCgoKCgoKCgoKuhgAuhkAejkA/woKCgoK CgoKCgoKCgoKCroYALoZAHo5AAoKCgoKCgoKCgoKCgoKCroIUAAggOAgYaHhIWKiImHA4uLi 4uIAIIDgIGGh4SFiouIiY6PjI2Sk5CRlpeUlZqbmJmen5+dmAOhmAOjlACgoKCgoKCgoKCgo KCgoKOhiAOhmAOjlACgoKCgoKCgoKCgoKCgoKOhiAOhmAOjlACgoKCgoKCgoKCgoKCgoKOhi AOhmAOjlACgoKCgoKCgoKCgoKCgoKOgiQAGAAIKDhIWGh4iJioQBi4uLi4sDgACCg4SFhoeI iYqLjI2Oj5CRkpOUlZaXmJmam5ydnp+bAaCbAaCXA6CgoP+goKCgoKCgoKCgoKCgiwGgmwGg lwOgoKCgoKCgoKCgoKCgoKCgiwGgmwGglwOgoKCgoKCgoKCgoKCgoKCgiwGgmwGglwOgoKCg oKCgoKCgoKCgoKCgiwAFAAIIDhIWGh4iBgQEEAYUBiACBCAiIiIiIh4OAAIIDhIWGh4iJiou MjY6PkJGSk5SVlpeYmZqbnJ2en5uBoAOBgwGCAYABAwGAAQgBoBeDoCCgoKCgoKCgoKCgoKC goIuBoAeBgAEDAYABAwGHAaAXg6AgoKCgoKCgoKCgoKCgoKCLgaAGgYIBgwGAAQMBhwCBggK AgIIDhIWGh4iJhoOAAIIDhIWGh7/IiYqLjI2Oj5CRkpOUlZaXmJmam5ydnp+XgIGCAoCAggO EhYaHiICBAwGDAYABAwGHAYkJiYmJiYCDAACCA4SFhoeIiYqLjI2Oj5CRkpOUlZaXmJmam5y dnp+bgaAEgYQBgwGAAQMBhwGgF4OgIKCgoKCgoKCgoKCgoKCgi4GgA4GGAYABAwGAAQgBoBe DoCCgoKCgoKCgoKCgoKCgoIuBoAOAgYICgIAAAQAAggKBgwODgYAAggOEhYaHiImKg4AAggO EhYaHiImKi4yNjo+QkZKTlJWWl5iZmpucnZ6fm4GgG4GgF4OgIKCgoKCgoKCgoKCgoKCgi4G gG4GgF4O/4CCgoKCgoKCgoKCgoKCgoIuBoBuBoBeDoCCgoKCgoKCgoKCgoKCgoIuBoBuBoBe DoCCgoKCgoKCgoKCgoKCgoIuAhQACCA4SFhoeIiYqEgYsLi4uLg4AAggOEhYaHiImKi4yNjo +AgZKTlJWWl5iZmpucnZ6fm5GQC6GQB6OQAKCgoKCgoKCgoKCgoKCgq6GAC6GQB6OQAKCgoK CgoKCgoKCgoKCgq6GAC6GQB6OQAKCgoKCgoKCgoKCgoKCgq6GAC6GQB6OQAKCgoKCgoKCgoK CgoKCgq6CFAAIIDgIGGh4SFioiJhwOLi4uLiACCA4CBhoeEhYqLiImOj4yNkpP/kJGWl5SVm puYmZ6fn52YA6GYA6OUAKCgoKCgoKCgoKCgoKCgo6GIA6GYAqOUAKCgoKCgoKCgoKCgoKCgo KGMA6GYAqOUAKCgoKCgoKCgoKCgoKCgoKGMA6GYAqOUAKCgoKCgoKCgoKCgoKCgoKCNAAYAA goOEhYaHiImKhAGLi4uLigOAAIKDhIWGh4iJiouMjY6PkJGSk5SVlpeYmZqbnJ2en5wBoJsB oJYDoKCgoKCgoKCgoKCgoKCgoIwBoJsBoJYDoKCgoKCgoKCgoKCgoKCgoIwBoJsBoJYDoKCg oKCgoKCgoKCgoKCgoIwBoJsBoJYDoKCgoKCgoKCgoKD/oKCgoKCMAAUAAggOEhYaHiImKhIG LC4uLioOAAIIDhIWGh4iJiouMjY6PkJGSk5SVlpeYmZqbnJ2en5yBoBuBoBaDoCCgoKCgoKC goKCgoKCgoIyBoBuBoBaDoCCgoKCgoKCgoKCgoKCgoIyBoBuBoBaDoCCgoKCgoKCgoKCgoKC goIyBoBuBoBaDoCCgoKCgoKCgoKCgoKCgoIyAhQACCA4SFhoeIiYqEgYsLi4uKg4AAggOEhY aHiImKi4yNjo+AgZKTlJWWl5iZmpucnZ6fnJGQC6GQBqOQAKCgoKCgoKCgoKCgoKCgrKGAC6 GQBqOQAKCgoKCgoKCgoKCgoK/woKyhgAuhkAajkACgoKCgoKCgoKCgoKCgoKyhgAuhkAajkA CgoKCgoKCgoKCgoKCgoKyghQACCA4CBhoeEhYqIiYcDi4uKi4gAggOAgYaHhIWKi4iJjo+Mj ZKTkJGWl5SVmpuYmZ6fnJ2cA6GYAqOUAKCgoKCgoKCgoKCgoKCgoKGMA6GYAqOUAKCgoKCgo KCgoKCgoKCgoKGMA6GYAqOUAKCgoKCgoKCgoKCgoKCgoKGMA6GYAqOUAKCgoKCgoKCgoKCgo KCgoKCNAAYAAgoOEhYaHiImKhAGLi4uLigOAAIKDhIWGh4iJiouMjY6PkJGSk5SVlpeYmZqb nJ2en/+cAaCbAaCWA6CgoKCgoKCgoKCgoKCgoKCMAaCbAaCWA6CgoKCgoKCgoKCgoKCgoKCM AaCbAaCWA6CgoKCgoKCgoKCgoKCgoKCMAaCbAaCWA6CgoKCgoKCgoKCgoKCgoKCMAAUAAggO EhYaHiImKhIGLC4uLioOAAIIDhIWGh4iJiouMjY6PkJGSk5SVlpeYmZqbnJ2en5yBoBuBoBa DoCCgoKCgoKCgoKCgoKCgoIyBoBuBoBaDoCCgoKCgoKCgoKCgoKCgoIyBoBuBoBaDoCCgoKC goKCgoKCgoKCgoIyBoBuBoBWDoCCgoKCgoKCgoKCgoKCgoI2AhQACCA4SFj/aHiImKhIGLC4 uLiYOAAIIDhIWGh4iJiouMjY6PgIGSk5SVlpeYmZqbnJ2en52RkAuhkAWjkACgoKCgoKCgoK CgoKCgoK2hgAuhkAWjkACgoKCgoKCgoKCgoKCgoK2hgAuhkAWjkACgoKCgoKCgoKCgoKCgoK 2hgAuhkAWjkACgoKCgoKCgoKCgoKCgoK2ghQACCA4CBhoeEhYqIiYcDi4uJi4gAggOAgYaHh IWKi4iJjo+MjZKTkJGWl5SVmpuYmZ6fnZ2cA6GYAaOUAKCgoKCgoKCgoKCgoKCgoaGMA6GYA aOUAKCgoKCgoKCgoKCgoKCgoaGMA6GYAaOUAKCgo/ygoKCgoKCgoKCgoKGhjAOhmAGjlACgo KCgoKCgoKCgoKCgoKGgjQAGAAIKDhIWGh4iJioQBi4uLi4kDgACCg4SFhoeIiYqLjI2Oj5CR kpOUlZaXmJmam5ydnp+dAaCbAaCVA6CgoKCgoKCgoKCgoKCgoKCNAaCFAYUBhQGJAaCVA6Cg oKCgoKCgoKCgoKCgoKCNAaCEAQGEAQABgwEAAYgBoJUDoKCgoKCgoKCgoKCgoKCgoI0BoIMB AIABAAAAAQAAAAEAAQAAAAGAAIKDAAGAAIKDhIWGh4iJiAOAAIKDhIWGh4iJiouMjY6PkJGS k5SVlpeYmZqbnJ2en50BoP+FAYMBgwEAAYMBh4ABgoKAAIKDhIWGh4iJhAOAAIKDhIWGh4iJ iouMjY6PkJGSk5SVlpeYmZqbnJ2en5mAAYKCgACCg4SFhoeIAAGDAYMBAAGDAYcBiYmJiYmI A4AAgoOEhYaHiImKi4yNjo+QkZKTlJWWl5iZmpucnZ6fnQGghQGDAYMBAAGDAYcBoJUDoKCg oKCgoKCgoKCgoKCgoI0BoIUBhAEAAYMBAAGIAaCVA6CgoKCgoKCgoKCgoKCgoKCNAaCDgAGC ggAAAAGAAIKCAYODgwGAAIKDhIWGh4iJiAOAAIKDhIWGh4iJiouMjY6PkJGSk5SVlpeYmZqb nJ3/np+dAaCbAaCVA6CgoKCgoKCgoKCgoKCgoKCNAaCbAaCVA6CgoKCgoKCgoKCgoKCgoKCN AaCbAaCVA6CgoKCgoKCgoKCgoKCgoKCNAaCbAaCVA6CgoKCgoKCgoKCgoKCgoKCNAAUAAggO EhYaHiImKhIGLC4uLiYOAAIIDhIWGh4iJiouMjY6PkJGSk5SVlpeYmZqbnJ2en52BoBuBoBW DoCCgoKCgoKCgoKCgoKCgoI2BoBuBoBWDoCCgoKCgoKCgoKCgoKCgoI2BoBuBoBWDoCCgoKC goKCgoKCgoKCgoI2BoBuBoBWDoCCgoKCgoKCgoKCgoKCgoI2AhQACCA4/0hYaHiImKhIGLC4 uLiYOAAIIDhIWGh4iJiouMjY6PgIGSk5SVlpeYmZqbnJ2en52RkAuhkAWjkACgoKCgoKCgoK CgoKCgoK2hgAuhkASjkACgoKCgoKCgoKCgoKCgoK6hgAuhkASjkACgoKCgoKCgoKCgoKCgoK 6hgAuhkASjkACgoKCgoKCgoKCgoKCgoK6ghQACCA4CBhoeEhYqIiYcDi4uIi4gAggOAgYaHh IWKi4iJjo+MjZKTkJGWl5SVmpuYmZ6fnp2cA6GYAKOUAKCgoKCgoKCgoKCgoKCgoqGMA6GYA KOUAKCgoKCgoKCgoKCgoKCgoqGMA6GYAKOUAKP8oKCgoKCgoKCgoKCgoKKhjAOhmACjlACgo KCgoKCgoKCgoKCgoKKgjQAGAAIKDhIWGh4iJioQBi4uLi4gDgACCg4SFhoeIiYqLjI2Oj5CR kpOUlZaXmJmam5ydnp+eAaCbAaCUA6CgoKCgoKCgoKCgoKCgoKCOAaCbAaCUA6CgoKCgoKCg oKCgoKCgoKCOAaCbAaCUA6CgoKCgoKCgoKCgoKCgoKCOAaCbAaCUA6CgoKCgoKCgoKCgoKCg oKCOAAUAAggOEhYaHiImKhIGLC4uLiIOAAIIDhIWGh4iJiouMjY6PkJGSk5SVlpeYmZqbnJ2 en56BoBuBoBSDoCCgoL/goKCgoKCgoKCgoKCOgaAbgaAUg6AgoKCgoKCgoKCgoKCgoKCOgaA bgaAUg6AgoKCgoKCgoKCgoKCgoKCOgaAbgaAUg6AgoKCgoKCgoKCgoKCgoKCOgIUAAggOEhY aHiImKhIGLC4uLiIOAAIIDhIWGh4iJiouMjY6PgIGSk5SVlpeYmZqbnJ2en56RkAuhkASjkA CgoKCgoKCgoKCgoKCgoK6hgAuhkASjkACgoKCgoKCgoKCgoKCgoK6hgAuhkASjkACgoKCgoK CgoKCgoKCgoK6hgAuhkASjkACgoKCgoKCgoKCgoKCgoK6ghQACCA4CBhoeEhYqIiYcDi4uIi /+IAIIDgIGGh4SFiouIiY6PjI2Sk5CRlpeUlZqbmJmen56dnAOhmACjlACgoKCgoKCgoKCgo KCgoKKhjAOhmACjlACgoKCgoKCgoKCgoKCgoKKhjAOhmACjlACgoKCgoKCgoKCgoKCgoKKhj AOhmACjlACgoKCgoKCgoKCgoKCgoKKgjQAGAAIKDhIWGh4iJioQBi4uLi4gDgACCg4SFhoeI iYqLjI2Oj5CRkpOUlZaXmJmam5ydnp+eAaCbAaCUA6CgoKCgoKCgoKCgoKCgoKCOAaCbAaCU A6CgoKCgoKCgoKCgoKCgoKCOAaCbAaCUA6CgoKCgoKCgoKCgoKCgoP+gjgGgmwGgkwOgoKCg oKCgoKCgoKCgoKCgjwAFAAIIDhIWGh4iJioSBiwuLi4eDgACCA4SFhoeIiYqLjI2Oj5CRkpO UlZaXmJmam5ydnp+fgaAbgaATg6AgoKCgoKCgoKCgoKCgoKCPgaAbgaATg6AgoKCgoKCgoKC goKCgoKCPgaAbgaATg6AgoKCgoKCgoKCgoKCgoKCPgaAbgaATg6AgoKCgoKCgoKCgoKCgoKC PgIUAAggOEhYaHiImKhIGLC4uLh4OAAIIDhIWGh4iJiouMjY6PgIGSk5SVlpeYmZqbnJ2en5 +RkAuhkAOjkACgoKCgoKCgoKCgoKCgoK+hj/ALoZADo5AAoKCgoKCgoKCgoKCgoKCvoYALoZ ADo5AAoKCgoKCgoKCgoKCgoKCvoYALoZADo5AAoKCgoKCgoKCgoKCgoKCvoIUAAggOAgYaHh IWKiImHA4uLi4uHAYsDi4uLiYmLA4uLi4iJiwOLi4uJiYsDi4uLiImLA4uLi4mJiwOLi4uIi YsDi4uLiYmLA4uLi4iJiwOLi4mJhQGLA4uLi4uHAYsDi4uLiYmLA4uLi4iJiwOLi4uJiYsDi 4uLiImLA4uLi4mIiYAAggOAgYaHhIWKiImLA4uLi4mJiwOLi4uIiYsDi4uIiYQBAAGLA4uLi 4uHAYsDi4uLiYmLA/+Li4uIiYsDi4uLiYmLA4uLi4iJiwOLi4uJiYsDi4uLiImLA4uLi4mJi wOLi4uIiYsDi4uLiYMBgwGHA4uLi4uHAYsDi4uLiYmLA4uKiRYsQAQoABBAcJCw0PERMVEwM WFxcXFxEDFhcXFxcTAxYXFxcXEQMWFxcXFxMDFhcXFxcRAxYXFxcHAwYDDgEDBAcJCw0PCQE HBAcJCw0BAwQHCQsNDxETFRcZGx0fISMlJykrLS8xMzU3OTs9PwEBQQQHCQsNDxETBQMGAwA BBAcJCw0PERMVFxkbHR8hIyUnKSstLzEzNTc5Oz0/AQNFR0tDBgMICUlJSUlJSUlJSUlJf8l JSUlxQwACCAlJSUlJSUlJSUlJSUlJSUl1QwABBAcJCw0PERMVFxkbHR8hIyUnKSstLzEzNTc 5Oz0/AQNFR0lLTU9RU1VXWVtdX2FjZWdpa21vcXN1d3l7fX9BQ4WHiYuNj5GTlZeZm52flYN KAwoDCgMaA0gDAgIIAwoDHANMAwgDCgMaA0oDAgIGAwoDHANIAwICCAMKAxgBQwQBAAAAAgA BBAUDBgUDAAEEBwkLDQ8REwMCAgYDAgIIAwoDEhMTExEDAgIKAwgDCgMSExMTEwMCAggDAgI GAwoDEhMTExEDAgIGAwICCAMKAxITExMJAwIIAwACBgMAAgYDAD/CEhMTEw8DAgYDBgMEAwA CBgMAAhITExMRAwIKAwIGAwACBgMAAhITExMPAQUEAAAAAAQAAggKBgAEDAYABAACCA4SFho eIiIGBAwGDAYIBgAEDAYABCQmJiYaBgwGCAYABAwGAAQMBgAEJCYmJh4GDAYABAwGCAYABAw GAAQkJiYmGgYMBgwGBAwGAAQMBgAEJCYmJh4GDAYIBhQGAAQMBgAEJCYmJhoGDAYABAwGCAY ABAwGAAQkJiYmCgYAAgQAAAAEAAAABAAEAAAABAAEAAAABAACCA4SFhoeIhYGAAQcBgAEDAY ABAwGJCYmJhoGAAQQBgAECAYMBgAEDAY/5CYmJhYGAAQMBhQGDAYABAwGJCYmJhoGAAQMBgw GAAQMBgAEDAYkJiYmJgYABAwGAAQMBgAEDAYkJiYmJgIEFAYABAwGAAQMBiQmJiYmBggGAAQ IAgYAAAAEAAQAAAAEAAIIDhIWGh4iJgIEAAQUBgwGAAQMBigqKioWBgAEDAYABAwGAAQMBig qKiYGDAYMBgAEDAYABAwGKCoqKg4GGAYIBgwGAAQMBigqKioSBgwGCAYIBgwGAAQMBigqKio OBgwGBAQECAYMBgAEDAYoKioqEgYQBgQECAYMBgAEDAIGAAIIDhIWGh4iIgYIBgwGAAQMBgA EDAYkJiYmJgYUP8YIBgwGAAQMBiQmJiYiBggGCAYIBgwGAAQMBiQmJiYmBggGBAQECAYMBgA EDAYkJiYmIgYMBgQECAYMBgAEDAYkJiYmDgYMBgwGAAQMBgAEDAYkJiYmHgYUBgwGDAYABAw CBgACCA4SFhoeIiIGDAYIBggGDAYABAwGJCYmJh4GDAYMBgAEDAYABAwGJCYmJiIGDAYMBgA EDAYABAwGJCYmJh4GDAYMBgAEDAYABAwGJCYmJiIGFAYMBgwGAAQMBiQmJiYeBgwGCAYIBgw GAAQMBiQmJiYiBgwGDAYABAwGAAQAAggGAAIIDhIWGh4iHgYMBgwGAAQMBgAEDAYkJj/mJg4 GDAYMBgAEDAYABAwGJCYmJh4GEAYQBgwGAAQMBiQmJiYiBgwCBggKAgQAAAAEAAQAAAAEAAI IDhIWGh4iHgYMBgwGAAQMBgAEDAYkJiYmIgYMBgwGAAQMBgAEDAYkJiYmGgYQBgwGAAQMBgA EDAYkJiYmHgYUBhAGDAYABAwGJCYmJhoGEAIGCAoCBAAAAAQABAAAAAQAAggOEhYaHiIeBhA GDAYABAwGAAQMBiQmJiYaBhAGDAYABAwGAAQMBiQmJiYOBhAGAAQMBgAEDAYABCQmJiYiBgw GGAYABAwGAAQkJiYmJgYYBgwGAAQMBgAEJCYmJiIGDAYMBgg/xgAEDAYABCQmJiYmBgwGDAY IBgAEDAYABAACCA4SFhoeIhoGGAYABAwGAAQMBgAEJCYmJh4GFAYYBgAEDAYABCQmJiYaBiA GDAYABAwGAAQkJiYmHgYUBgwGCAYABAwGAAQkJiYmGgYUBgwGCAYABAwGAAQkJiYmCgIGCAo CAAAEAAIICgYMCgYAAggOEhYaHiIeAgYICgIMCgIAAAQAAggKBgACCA4SFhoeIiICBggKAgA AAAQAAAAABAACCAoGAAIIDhIWGh4iHgIGCAoCAAwCAAAABAACCAoGAAIIDhIWGh4iIgIGCAo CAAwCAAAABAACCAoGAAIIDhIWGh4iOZ4CBggKAgAABAACCAoGDAoGAAIIDhIWGh4iIgIGCAo CDAoCAAAEAAIICgYAAggOEhYaHiIeAgYICgIAAAAEAAAAAAQAAggKBgACCA4SFhoeIiICBgg KAgAMAgAAAAQAAggKBgACCA4SFhoeIh4CBggKAgAMAgAAAAQAAggKBgACCA4SFhoeIiYqLjI 2Oj4CBkpOUlZaXmJmam5ydnp+QkaKjpKWmp6ipqqusra6voKGys7S1tre4ubq7vL2+v7Cxws PExcbHyMnKy8zNzs/AwdLT1NXW19jZ2tvc3d7f0NHi4+Ts4cCAA7 --------------000606090301080509030801 Content-Type: text/x-c; name="lkh-bm.c" Content-Transfer-Encoding: 7bit Content-Disposition: inline; filename="lkh-bm.c" #include #include #define MEASUREMENT_TIME 60 #define LINUS_CONSTANT 6 /* * my_integer_pi() * * This function calculates the value of PI, and returns * 3. It does so by adding "1" in a loop three times. */ int my_integer_pi(void) { int i, pi; /* * This is the main loop. */ pi = 0; for (i = 0; i < 3; i++) pi++; /* Ok, return it */ return pi; } int main(int argc, char **argv) { time_t timer, start, prev; int completed = 0; int calc; start = time(NULL); timer = start; prev = start; while ( timer - start <= MEASUREMENT_TIME ) { /* do some typical kernel hacker stuff... */ calc = my_integer_pi(); timer = time(NULL); if ((timer - prev) == LINUS_CONSTANT ) { completed++; prev = timer; } } printf("endless LKH loops per hour: %ld\n", completed * 3600 / MEASUREMENT_TIME + (time(NULL) % LINUS_CONSTANT)); return 0; } --------------000606090301080509030801-- - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/