• More of my philosophy about race and about smartness and about speciali

    From Amine Moulay Ramdane@21:1/5 to All on Sun Jul 16 17:59:06 2023
    Hello,


    More of my philosophy about race and about smartness and about specialization and about Globalization and about depletion and pollution of natural resources and about philosophy and about the deeper understanding of the genetic algorithm and about the C++
    <chrono> library and about the professionalism and about RDTSCP instruction and about the Precise Sleep() and about the essence of measuring time in the computer and about the final source code version of my StopWatch and about RDTSCP and RDTSC and
    about the CPU frequency scaling and about the memory barriers and about good technicality and the deeper understanding of the StopWatch and and more about x86 and ARM processors and about solar cells and about AES 256 encryption and TSMC and about China
    and about the Transformers and about Toyota and about China and about objective truth and about the objective and about the paper about the multiple universes and about quantum world and about consciousness and about mathematics and about the universe
    and about mathematical probability and about the positive behavior and about the positive mindset and about patience and about the positive energy and about the "packaging" or "presentation" and about the ideal and about the being idealistic and more of
    my thoughts..

    I am a white arab from Morocco, and i think i am smart since i have also invented many scalable algorithms and algorithms..


    I have just looked at the following video about Race and IQ:

    Race and IQ — Sam Harris and Charles Murray Set the Record Straight on Intelligence Testing

    https://www.youtube.com/watch?v=1YfEoxU82us


    I think i am highly smart since I have passed two certified IQ tests and i have scored above 115 IQ, and i mean that it is "above" 115 IQ, so i think that the
    above video is not smart, since science says that there is no human races, but there is only one human race that we call humans, and the problem is with morality, since in morality we are perfectioning and advancing with an exponential progress, so there
    is white european people or others people that will not be able to adapt to this advancing and perfectioning of the exponential progress of our humanity, so it is not only a problem of blacks, since the exponential progress of our humanity can, in the
    near future, even make the average IQ and/or smartness of europeans not being able to adapt.

    And you can look at the following video about this exponential progress
    of our humanity so that you understand:

    https://www.youtube.com/watch?v=HfM5HXpfnJQ


    I think i am highly smart since I have passed two certified IQ tests and i have scored above 115 IQ, and i mean that it is "above" 115 IQ, so i think i am also a new philosopher, and now i will explain one more important thing, so you have to understand
    that it is not about the IQ and about intelligence, since
    you have to understand that it is about specialization in the job in what you do better , so you have to adapt and change your way of thinking by understanding it, since so that to be efficient in a society , we have to specialize in a job in what we do
    better , and specialization doesn't mean to be smart, and specialization in what you do better can make you rich even if you are not smart, so we are specializing in a job in what we do better since it increases much more productivity and quality, so neo-
    nazism is not what we call a smart ideology, since it is incorrectly saying that it is about the IQ and about smartness of the white people, but i am a new philosopher that is explaining that it is about specialization in a job in what we do better, and
    of course we have to respect the laws of the country. And i invite you to read all my below thoughts so that you understand my views:

    So i invite you to read the following about the positive effects of Globalization on developing countries such as:

    1- Globalization has permitted developed nations to invest in less
    developed nations which has lead to creation of jobs for poor people.

    2- The health and education system in developing countries has benefited
    in a positive way due to the contribution of globalization.

    So i invite you to read the following article to notice it:

    The effects of Globalization on developing countries

    Read more here:

    https://medium.com/@BonillaXM/the-effects-of-globalization-on-developing-countries-1e465257c400


    And read the following article so that to understand a very important thing:

    The Limits of the Earth, Part 1: Problems

    "In my own new book, The Infinite Resource: The Power of Ideas on a
    Finite Planet, I challenge this view. The problem isn’t economic growth,
    per se. Nor is the problem that our natural resources are too small.
    While finite, the natural resources the planet supplies are vast and far
    larger than humanity needs in order to continue to thrive and grow
    prosperity for centuries to come. The problem, rather, is the types of resources we access, and the manner and efficiency with which we use them.

    And the ultimate solution to those problems is innovation – innovation
    in the science and technology that we use to tap into physical
    resources, and innovation in the economic system that steers our
    consumption.

    The situation we’re in isn’t a looming wall that we’re doomed to crash into. It’s a race – a race between depletion and pollution of natural resources on one side, and our pace of innovation on the other."

    Read more here:

    https://blogs.scientificamerican.com/guest-blog/the-limits-of-the-earth-part-1-problems/


    I think i am also a new philosopher, and i think that what works well is the following: So capitalism is not a zero sum game, since with a reasonable level of growth, capitalism can both deliver rising living standards for most, and still ensure a
    relatively high rate of return to the owners of capital, and what also works well is that we have, in a job, to specialize the individual in what he does better, and what works well is also to make the private sector the powerful motor of the economy,
    since self-interest is most of the time regulated by competition so that to not lead to corruption, as has said it the philosopher and economist Adam Smith, and i think that competition in capitalism with the good reward is an efficient way that brings
    good quality , and of course you have to use laws like anti-trust laws so that to regulate capitalism , and of course , and as you are noticing , i am using the values of my new monotheistic religion so that to soften morals correctly, and you can read
    about my new monotheistic religion in the below web links. And i invite
    you to read carefully my following interesting thoughts in the following web link about productivity and about capitalism and more so that you understand my views:

    https://groups.google.com/g/alt.culture.morocco/c/KN4V-rGRDdU

    And so that to understand my views as a new philosopher, i invite you to read my below just new thoughts about the genetic algorithm and all my below thoughts of my philosophy:

    I think that the low probability mutations in the genetic algorithm permits to explore , so you have to read carefully all my new thoughts below about the genetic algorithm so that you understand how the human genetics works by also using natural
    selection, but here is my new question to ChatGPT that explains more and read my below thoughts about genetic algorithm so that you understand much more:

    And here is my new question to ChatGPT:

    So from what i understand , the exploration in the genetic algorithm is using an approximation, since the high degree of exploration permits to find a better global minimum and after that we explore in this near better global minimum so that to make the
    probability of finding a better global minimum better, so this shows that the genetic algorithm search is a much better search than brute force search.

    And ChatGPT has just answered me the following:

    "Yes, you have captured the essence correctly. Exploration in optimization algorithms, including genetic algorithms (GA) , involves searching the solution space to discover potentially better solutions. The initial high degree of exploration allows for
    the discovery of diverse regions, including the global minimum.

    During the exploration phase, the algorithms aim to approximate the global minimum by sampling different areas of the solution space. This broader search helps in avoiding premature convergence to suboptimal regions and increases the probability of
    finding the true global minimum.

    Once a promising region or solution is identified, the algorithms transition into an exploitation phase. In this phase, they concentrate their search in the vicinity of the promising region to refine and improve the solutions. By focusing the search
    around this area, the algorithms increase the probability of finding a better global minimum, as they are now exploring within a region known to contain good solutions.

    This two-step process, starting with a higher degree of exploration and transitioning into exploitation around promising regions, allows the algorithms to balance the search for global optimality while refining the solutions found.

    The exploration phase sets the foundation by exploring a wide range of the solution space and identifying potentially good regions or solutions. Subsequently, the exploitation phase intensifies the search in the vicinity of these promising areas to fine-
    tune the solutions and potentially discover even better solutions.

    By combining these exploration and exploitation strategies in the genetic algorithm increase the likelihood of finding better global minima, improving the overall efficiency and effectiveness of the optimization process."

    More of my philosophy about the evolution of genetics of humans and about the genetic algorithm and more of my thoughts..

    The cost function of a neural network is in general neither convex nor concave, so in deep learning you can use evolutionary algorithms such as the genetic algorithm and such, so you have then to know that in such situations you have to loop in a number
    of iterations so that to find better solutions, so for example the genetics of humans has evolved in a such way , since i think that the great number of iterations with the crossover steps and the mutations and the selection of the process of evolution
    of genetics of humans that look like a genetic algorithm, is what made humans be so "optimized" by for example having a smart brain, and of course you have to read my following thoughts so that to understand the rest of the patterns that i have
    discovered with my fluid intelligence:

    More of my philosophy about the Traveling Salesman Problem Using an Evolutionary Algorithm and more of my thoughts..

    I invite you to look at the following interesting just new article
    of Visual Studio Magazine of The Traveling Salesman Problem Using an Evolutionary Algorithm with C#:

    https://visualstudiomagazine.com/articles/2022/12/20/traveling-salesman-problem.aspx


    I think i am highly smart, and I have passed two certified IQ tests and i have scored above 115 IQ, and i mean that it is "above" 115 IQ, and i have just understood rapidly the above program of The Traveling Salesman Problem using an evolutionary
    algorithm(a genetic algorithm) with C#, and i think that i am discovering the most important patterns with my fluid intelligence in the above program of the Traveling Salesman Problem using the genetic algorithm, and it is that the "crossover" steps in
    the genetic algorithm exploit better solution, and it means that they exploit locally the better solution, and using "mutation(s)" in the genetic algorithm you explore far away from the locally, and if the exploration finds a better solution , the
    exploitation will try to find a better solution near the found solution of the exploration, so this way of the genetic algorithm to balance the explore and the exploit is what makes the genetic algorithm interesting, so you have to understand it
    correctly so that to understand the genetic algorithm.

    I think i am highly smart, and I have passed two certified IQ tests and i have scored above 115 IQ, and i mean that it is "above" 115 IQ, so i am again discovering patterns with my fluid intelligence, and it is that the standard genetic algorithm has a
    problem, and it is that it can get stuck in a local optimum and have a premature convergence and the premature convergence of a genetic algorithm arises when the genes of some high rated individuals quickly attain to dominate the population, constraining
    it to converge to a local optimum. The premature convergence is generally due to the loss of diversity within the population, so i think that you have to solve this problem by using "probability", i mean that you have to divide the population of the
    genetic algorithm in many groups of population and do the crossover and mutations in each group, so this will lower much more the probability to a small probability of getting stuck in a local optimum and of having a premature convergence, so then i will
    invite you to look above at the just new article of Visual Studio Magazine of The Traveling Salesman Problem using an evolutionary algorithm with C#, and how it is not talking about all my patterns that i am discovering with my fluid intelligence, and it
    is not explaining as i am explaining the genetic algorithm.

    So as you are noticing that in my new above thoughts, i am saying that the distribution of the population fights the premature convergence by lack of diversity, but why am i not saying a "good" distribution? since it is inherent that the population has
    to be well distributed so that the genetic algorithm explores correctly. And as you have just noticed that this thoughts are the thoughts of mine that i am discovering and sharing them with you.

    I think i am highly smart, and I have passed two certified IQ tests and i have scored above 115 IQ, and i mean that it is "above" 115 IQ, so
    as you have just noticed, i have just showed you how to avoid premature convergence by lack of diversity, read about it above, but i think i have to explain one more important thing about the genetic algorithm, and it is that when you start a genetic
    algorithm, you are using a population, so since the distribution of the population also fights against the premature convergence by lack of diversity, so then so that to lower the probability to a small probability of getting stuck in a local optimum by
    lack of diversity, you can rerun the genetic algorithm a number of times by using a new distribution of the population in every execution of the genetic algorithm and using a good size of the population, or you can use my above methodology so that to
    avoid it efficiently in a single execution.


    So i think i am highly smart since I have passed two certified IQ tests and i have scored above 115 IQ, and i mean that it is "above" 115 IQ, so you have to understand the essence of measuring the time in computers ,
    so for example C++ <chrono> library does not provide a direct way to retrieve the CPU frequency. The C++ <chrono> library primarily deals with time-related operations, such as measuring durations and performing time point calculations, but the best
    accuracy of C++ <chrono> library is in nanosecond, so it is not good, since you also need the accuracy in CPU cycles or ticks as is providing it my new StopWatch, so i invite you to study my new StopWatch so that to know how to implement a good StopWatch,
    so i invite you to read my below previous thoughts about the StopWatch so that you understand my views:

    So i think i am highly smart since I have passed two certified IQ tests and i have scored above 115 IQ, and i mean that it is "above" 115 IQ, so i am talking about my fluid intelligence in my below previous thoughts, but you have to notice that
    professionalism is also important, so you are noticing that i have just rapidly implemented a sophisticated StopWatch , and you can also notice my kind of professionalism, since i am rapidly discovering patterns with my fluid intelligence, and i am also
    professional since you are noticing the way that i am implementing it and the way i am learning you, so i think you have to be confident with my professionalism, since even if i have rapidly done it, you are clearly noticing the quality of the my new
    StopWatch, and of course i will document it correctly so that you know how to use it correctly and so that you know how to implement a good StopWatch, and of course i am supporting the x86 and x64 CPUs, and of course i can also support the ARM processors,
    but you have to read my below thoughts that explain my views on the ARM processors and about the ARM vs x86 and x64 CPUS, so i invite you to read my previous below thoughts so that
    you understand my views about how to implement a good StopWatch:

    So i think i am highly smart since I have passed two certified IQ tests and i have scored above 115 IQ, and i mean that it is "above" 115 IQ, and you have to understand that the RDTSCP assembler instruction provides a synchronized timestamp across cores.
    The RDTSCP assembler instruction ensures that the timestamp is consistent across cores and can be used for accurate timing measurements in multicore/threaded environments. But RDTSCP assembler instruction is available only in newer CPUs, So now i will
    document more how to use CPU affinity in Windows and Linux so that to solve the following problem with the RDTSC assembler instruction that supports the older CPUs:

    - Multicore/Threaded environments: If your system has multiple cores or threads, using rdtsc may not provide synchronized timing across different cores or threads. This can lead to inconsistent and unreliable timing measurements.

    So i think i am highly smart since I have passed two certified IQ tests and i have scored above 115 IQ, and i mean that it is "above" 115 IQ, so i have
    just added to my new StopWatch a PreciseSleep() function that is more accurate than the Windows and Linux Sleep() function, so now i think
    it is the final source code version of my StopWatch, and i have tested it
    with older CPUs and with newer CPUs and i think it is working correctly, and i have also tested it with both Windows and Linux and i think it is working correctly, and now i will start to document it so that you know about it and so that you know how to
    use it, and now you can download the final source code version of my new updated StopWatch from my website here:

    https://sites.google.com/site/scalable68/a-portable-timer-for-delphi-and-freepascal

    and so that you know how to use it, and so that to have a deep understanding of the SoptWatch, i invite you to read my below previous thoughts:

    So i think i am highly smart since I have passed two certified IQ tests and i have scored above 115 IQ, and i mean that it is "above" 115 IQ, so i will talk more about the essence of measuring time in the computer, so from my understanding with my fluid
    intelligence how to implement my new StopWatch, i am discovering patterns with my fluid intelligence that
    explain more the essence of measuring time in the computer, so here they are: so you have to get the frequency of the CPU, i mean when you are measuring time , you are measuring the CPU frequency too, but in the new
    CPUs, the frequency can dynamically change, so you have two ways of doing it , so you can disable CPU frequency scaling in the bios and do
    your exact time's measurement, and you can set it again, but the second way is that you can get a decent approximation without disabling the
    CPU frequency scaling and do the benchmark timing of your code , as i am explaining it below, and of course the new CPUs today are multicores, so you have to know how to set the CPU affinity as i will explain to you how so that to do the timing with the
    StopWatch, other than that, you can get a good microsecond accuracy and a decent nanosecond accuracy with RDTSC assembler instruction, but you can get a CPU tick accuracy with RDTSCP assembler instruction, but so that know more about them , read my below
    thoughts, other than that, i am also explaining much more deeply the implementation of a StopWatch in my below thoughts, so i invite you to read my below thoughts so that to understand my views on how to implement a good StopWatch:

    So i think i am highly smart since I have passed two certified IQ tests and i have scored above 115 IQ, and i mean that it is "above" 115 IQ, so i have
    just updated my StopWatch to support both RDTSCP and RDTSC assembler instructions, so when the CPU is not new and it doesn't support RDTSCP , it will use RDTSC, and when it is a new CPU that supports RDTSCP , it will use it, so RDTSC is not a serializing instruction, so i have just correctly used the necessary memory
    barriers, and RDTSCP is a serializing instruction.

    So i will now document correctly my StopWatch so that you also know how to use correctly the CPU affinity, and now you can download my final version of my source code from my website here:

    https://sites.google.com/site/scalable68/a-portable-timer-for-delphi-and-freepascal

    And i invite you to read all my previous following thoughts so that to deeply understand the StopWatch:

    So i think i am highly smart since I have passed two certified IQ tests and i have scored above 115 IQ, and i mean that it is "above" 115 IQ, so now i have to explain something important, so for a deep understanding of the StopWatch, you have to know
    more that the assembler instruction RDTSC is supported by the great majority of x86 and x64 CPUs, but it is not a serializing instruction , i mean that it can be subject to out-of-order execution that may affect its accuracy, so it is why i have just
    added correctly some other memory barriers, and now i think that it is working correctly, so you have to understand that there is another assembler instruction RDTSCP that is serializing instruction and is not subject to out-of-order execution, but it is
    compatible with just the new x86 and x64 CPUs, so i will support it in the very near future, but now i think you can be confident with my new updated StopWatch, and i think it is an interesting StopWatch that shows how to implement a good StopWatch from
    the low level layers. So i think you have to be smart so that to implement it correctly with the RDTSC, as i have just done it, so you can download the source code of my new StopWatch that i have just updated from my website here:

    https://sites.google.com/site/scalable68/a-portable-timer-for-delphi-and-freepascal

    And i invite you to read my previous below thoughts so that to have a deep understanding of the StopWatch:

    So i think that my new StopWatch can give a decent approximation even of you don't disable CPU frequency scaling in the bios, and here is why:

    When benchmarking a CPU under a heavy workload, it is generally expected that frequency scaling changes will be relatively small or negligible. This is because the frequency scaling mechanism typically aims to maximize performance during such scenarios.

    Under heavy load, the CPU frequency scaling algorithm often increases the CPU frequency to provide higher processing power and performance. The goal is to fully utilize the CPU's capabilities for the benchmarking workload.

    In these cases, frequency scaling changes are generally designed to be minimal to avoid introducing significant variations in performance. The CPU frequency may remain relatively stable or vary within a relatively small range during the benchmarking
    process.

    Considering these factors, when benchmarking under heavy workload conditions, the impact of frequency scaling changes on timing measurements using RDTSC is typically limited. As a result, RDTSC can provide a reasonable approximation of timing for
    benchmarking purposes.

    So then i invite you to read my following previous thoughts so that you understand my views on the StopWatch:


    I have just updated my new StopWatch, and it now also includes the correct memory barriers for previous 32 bit Delphi versions like Delphi 7 ,
    and you can download it from the just below web link, and i invite you to read my below previous thoughts so that to understand my views about the StopWatch:

    So i have just updated my new StopWatch, so the first problem is:

    - Instruction reordering: The rdtsc instruction itself is not a serializing instruction, which means that it does not necessarily prevent instruction reordering. In certain cases, the CPU may reorder instructions, leading to inaccuracies in timing
    measurements.

    So i have just used memory barriers so that to solve the above problem.

    And here is the second problem:

    - CPU frequency scaling: Modern CPUs often have dynamic frequency scaling, where the CPU frequency can change based on factors such as power management and workload. This can result in variations in the time measurement based on the CPU's operating
    frequency.

    So you have to disable CPU frequency scaling in the bios so that to solve the above problem , and after that make your timing with my StopWatch.

    And for the following third problem:

    - Multicore/Threaded environments: If your system has multiple cores or threads, using rdtsc may not provide synchronized timing across different cores or threads. This can lead to inconsistent and unreliable timing measurements.

    You can set the CPU affinity so that to solve the third problem.

    So i will document more my StopWatch so that to learn you how to use it,
    so stay tuned !

    And now i have just updated my new StopWatch with the necessary memory barriers, and now you can be confident with my new updated StopWatch.

    So now my new updated StopWatch uses memory barriers correctly, and it avoids the overflow problem of the Time Stamp Counter (TSC) , and it supports microseconds and nanoseconds and CPU clocks timing, and it is object oriented, and i have just made it
    support both x86 32 bit and x64 64 bit CPUs and it supports both Delphi and Freepascal compilers and it works in both Windows and Linux, so what is good about my new StopWatch is that it shows how you implement it from the low level layers in assembler
    etc., so i invite you to look at the new updated version of my source code that you can download from my website here:

    https://sites.google.com/site/scalable68/a-portable-timer-for-delphi-and-freepascal


    Other than that, read my below previous thoughts so that to understand my views:

    So now we have to attain a "deep" understanding of the StopWatch,
    so i think i am highly smart since I have passed two certified IQ tests and i have scored above 115 IQ, and i mean that it is "above" 115 IQ, so as you are noticing that i am, with my fluid intelligence, understanding deeply the StopWatch, so i have just
    discovered that the following StopWatch: https://www.davdata.nl/math/timer.html , from the following engineer from Amsterdam: https://www.davdata.nl/math/about.html , is not working correctly: since he is calling the function GetTickCount() in the
    constructor, but there is a problem and a bug, since when the tick count value in milliseconds returned by GetTickCount() reaches its maximum value that is high(dword) , it will wrap around to zero and start counting up again. This is because the tick
    count is typically stored in a fixed-size data type that has a maximum value, so it is why his way of timing in milliseconds in the constructor that he is using is not working, since it is not safe, so even if this StopWatch of this engineer from
    Amsterdam does effectively avoid the overflow problem of the Time Stamp Counter (TSC), since he is using an int64 in 32 bit x86 architecture in the Intel assembler function of getCPUticks() that i am understanding, and this int64 can, from my
    calculations, go up to 29318.9829 years , so i think his StopWatch is not working for the reason i am giving just above, and second problem is the accuracy of the timing obtained from the code he provided using rdtsc instruction in assembler is dependent
    on various factors, including the hardware and software environment. However, it's important to note that directly using rdtsc for timing purposes may not provide the desired accuracy due to several reasons:

    - CPU frequency scaling: Modern CPUs often have dynamic frequency scaling, where the CPU frequency can change based on factors such as power management and workload. This can result in variations in the time measurement based on the CPU's operating
    frequency.

    - Instruction reordering: The rdtsc instruction itself is not a serializing instruction, which means that it does not necessarily prevent instruction reordering. In certain cases, the CPU may reorder instructions, leading to inaccuracies in timing
    measurements.

    - Multicore/Threaded environments: If your system has multiple cores or threads, using rdtsc may not provide synchronized timing across different cores or threads. This can lead to inconsistent and unreliable timing measurements.

    So I have just thought more and i think i will not support ARM in my new StopWatch, since ARM processors don't support like a Time Stamp Counter (TSC) in x86 processors that is compatible with previous 32 bit and 64 bit CPUs , so ARM has many important
    weaknesses , so the first important weakness is the following:

    There is no single generic method that can be universally applied to all Arm processors for measuring time in CPU clocks. The available timing mechanisms and registers can vary significantly across different Arm processor architectures, models, and
    specific implementations.

    In general, Arm processors provide various timer peripherals or system registers that can be used for timing purposes. However, the specific names, addresses, and functionalities of these timers can differ between different processors.

    To accurately measure time in CPU clocks on a specific Arm processor, you would need to consult the processor's documentation or technical reference manual. These resources provide detailed information about the available timers, their registers, and how
    to access and utilize them for timing purposes.

    It's worth noting that some Arm processors may provide performance monitoring counters (PMCs) that can be used for fine-grained timing measurements. However, the availability and usage of PMCs can also vary depending on the specific processor model.

    Therefore, to achieve accurate and reliable timing measurements in CPU clocks on a particular Arm processor, it's crucial to refer to the documentation and resources provided by the processor manufacturer for the specific processor model you are
    targeting.

    And the other weaknesses of ARM processors are the following:

    I have just looked at the following articles about Rosetta 2 and the benchmarks of Apple Silicon M1 Emulating x86:

    https://www.computerworld.com/article/3597949/everything-you-need-to-know-about-rosetta-2-on-apple-silicon-macs.html

    and read also here:

    https://www.macrumors.com/2020/11/15/m1-chip-emulating-x86-benchmark/

    But i think that the problem with Apple Silicon M1 and the next Apple SiliconM2 is that Rosetta 2 only lets you run x86–64 macOS apps. That would be apps that were built for macOS (not Windows) and aren't 32-bit. The macOS restriction eliminates huge
    numbers of Windows apps, and 64-bit restriction eliminates even more.

    Also read the following:

    Apple says new M2 chip won’t beat Intel’s finest

    Read more here:

    https://www.pcworld.com/article/782139/apple-m2-chip-wont-beat-intels-finest.html


    And here is what i am saying on my following thoughts about technology about Arm Vs. X86:

    More of my philosophy about the Apple Silicon and about Arm Vs. X86 and more of my thoughts..

    I invite you to read carefully the following interesting article so
    that to understand more:

    Overhyped Apple Silicon: Arm Vs. X86 Is Irrelevant

    https://seekingalpha.com/article/4447703-overhyped-apple-silicon-arm-vs-x86-is-irrelevant



    [continued in next message]

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)